Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
591af1b4
Commit
591af1b4
authored
Jul 26, 2013
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Powerlink CN server work
parent
2662da47
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
10548 additions
and
703 deletions
+10548
-703
otherio/exp/com/src/os_linux/open_powerlink_configurator.sh
otherio/exp/com/src/os_linux/open_powerlink_configurator.sh
+45
-0
otherio/exp/com/src/os_templ/hw_templ/makefile
otherio/exp/com/src/os_templ/hw_templ/makefile
+78
-0
otherio/exp/xdd/src/cn_template.xdd
otherio/exp/xdd/src/cn_template.xdd
+3199
-0
otherio/exp/xdd/src/os_templ/hw_templ/makefile
otherio/exp/xdd/src/os_templ/hw_templ/makefile
+58
-0
otherio/lib/rt/src/os_linux/rt_io_m_epl_cnserver.c
otherio/lib/rt/src/os_linux/rt_io_m_epl_cnserver.c
+329
-326
otherio/lib/rt/src/os_linux/rt_io_m_epl_mn.c
otherio/lib/rt/src/os_linux/rt_io_m_epl_mn.c
+267
-371
otherio/lib/wb/src/wb_c_epl_cnserver.cpp
otherio/lib/wb/src/wb_c_epl_cnserver.cpp
+501
-0
otherio/lib/wb/src/wb_c_epl_mn.cpp
otherio/lib/wb/src/wb_c_epl_mn.cpp
+1
-1
otherio/lib/wb/src/wb_otherio.meth
otherio/lib/wb/src/wb_otherio.meth
+1
-0
otherio/mmi/mcomp/src/mcomp_epl_cn.pwg
otherio/mmi/mcomp/src/mcomp_epl_cn.pwg
+659
-0
otherio/mmi/mcomp/src/mcomp_epl_cn.pwsg
otherio/mmi/mcomp/src/mcomp_epl_cn.pwsg
+286
-0
otherio/mmi/mcomp/src/pwr_c_epl_cn.pwg
otherio/mmi/mcomp/src/pwr_c_epl_cn.pwg
+1554
-0
otherio/mmi/mcomp/src/pwr_c_epl_cnserver.pwg
otherio/mmi/mcomp/src/pwr_c_epl_cnserver.pwg
+1554
-0
otherio/mmi/mcomp/src/pwr_c_epl_mn.pwg
otherio/mmi/mcomp/src/pwr_c_epl_mn.pwg
+1890
-0
otherio/wbl/mcomp/src/otherio.wb_load
otherio/wbl/mcomp/src/otherio.wb_load
+105
-5
src/msg/rt/src/rt_iom_msg.msg
src/msg/rt/src/rt_iom_msg.msg
+4
-0
wb/exp/wb/src/pwr_wb_palette.cnf
wb/exp/wb/src/pwr_wb_palette.cnf
+13
-0
xtt/lib/ge/src/pwr_ge_setup.dat
xtt/lib/ge/src/pwr_ge_setup.dat
+4
-0
No files found.
otherio/exp/com/src/os_linux/open_powerlink_configurator.sh
0 → 100755
View file @
591af1b4
#!/bin/bash
#
# Proview Open Source Process Control.
# Copyright (C) 2005-2012 SSAB EMEA AB.
#
# This file is part of Proview.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Proview. If not, see <http://www.gnu.org/licenses/>
#
# Linking Proview statically or dynamically with other modules is
# making a combined work based on Proview. Thus, the terms and
# conditions of the GNU General Public License cover the whole
# combination.
#
# In addition, as a special exception, the copyright holders of
# Proview give you permission to, from the build function in the
# Proview Configurator, combine Proview with modules generated by the
# Proview PLC Editor to a PLC program, regardless of the license
# terms of these modules. You may copy and distribute the resulting
# combined work under the terms of your choice, provided that every
# copy of the combined work is accompanied by a complete copy of
# the source code of Proview (the version used to produce the
# combined work), being distributed under the terms of the GNU
# General Public License plus this exception.
#
cnf
=
`
which openCONFIGURATOR
`
if
[
-z
"
$cnf
"
]
;
then
echo
"** openCONFIGURATOR not installed"
exit
fi
export
HOME
=
$pwrp_login
openCONFIGURATOR
otherio/exp/com/src/os_templ/hw_templ/makefile
0 → 100644
View file @
591af1b4
include
$(pwre_dir_symbols)
ifndef
variables_mk
-include
$(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/variables.mk
endif
ifndef
variables_mk
include
$(pwre_kroot)/tools/bld/src/$(os_name)/variables.mk
endif
ifndef
rules_mk
-include
$(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/rules.mk
endif
ifndef
rules_mk
include
$(pwre_kroot)/tools/bld/src/$(os_name)/rules.mk
endif
vpath %.sh $(hw_source)
:
$(os_source):$(co_source)
vpath %.pwr_com $(hw_source)
:
$(os_source):$(co_source)
source_dirs
=
$(hw_source)
$(os_source)
$(co_source)
sh_sources
:=
$(
sort
\
$(
foreach
file,
\
$(
foreach
dir
,
\
$(source_dirs)
,
\
$(
wildcard
$(dir)
/
*
.sh
)
\
)
,
$(
notdir
$(file)
)
\
)
\
)
pwr_com_sources
:=
$(
sort
\
$(
foreach
file,
\
$(
foreach
dir
,
\
$(source_dirs)
,
\
$(
wildcard
$(dir)
/
*
.pwr_com
)
\
)
,
$(
notdir
$(file)
)
\
)
\
)
export_sh
:=
$(
patsubst
%.sh,
$(exe_dir)
/%.sh,
$(sh_sources)
)
clean_sh
:=
$(
patsubst
%.sh, clean_%.sh,
$(sh_sources)
)
export_pwr_com
:=
$(
patsubst
%.pwr_com,
$(exe_dir)
/%.pwr_com,
$(pwr_com_sources)
)
clean_pwr_com
:=
$(
patsubst
%.pwr_com, clean_%.pwr_com,
$(pwr_com_sources)
)
.PHONY
:
all init copy lib exe clean realclean
\
$(clean_sh)
all
:
init copy
init
:
copy
:
$(export_sh) $(export_pwr_com)
lib
:
exe
:
clean
:
realclean
:
clean $(clean_sh) $(clean_pwr_com)
$(export_sh)
:
$(exe_dir)/%.sh : %.sh
@
echo
"Exporting
$<
..."
@
$(cp)
$(cpflags)
$(source)
$(target)
$(export_pwr_com)
:
$(exe_dir)/%.pwr_com : %.pwr_com
@
echo
"Exporting
$<
..."
@
$(cp)
$(cpflags)
$(source)
$(target)
$(clean_sh)
:
clean_%.sh : %.sh
@
rm
$(exe_dir)
/
$*
.sh
$(clean_pwr_com)
:
clean_%.pwr_com : %.pwr_com
@
rm
$(exe_dir)
/
$*
.pwr_com
otherio/exp/xdd/src/cn_template.xdd
0 → 100644
View file @
591af1b4
This source diff could not be displayed because it is too large. You can
view the blob
instead.
otherio/exp/xdd/src/os_templ/hw_templ/makefile
0 → 100644
View file @
591af1b4
include
$(pwre_dir_symbols)
ifndef
variables_mk
-include
$(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/variables.mk
endif
ifndef
variables_mk
include
$(pwre_kroot)/tools/bld/src/$(os_name)/variables.mk
endif
ifndef
rules_mk
-include
$(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/rules.mk
endif
ifndef
rules_mk
include
$(pwre_kroot)/tools/bld/src/$(os_name)/rules.mk
endif
vpath %.xdd $(hw_source)
:
$(os_source):$(co_source)
source_dirs
=
$(hw_source)
$(os_source)
$(co_source)
xdd_sources
:=
$(
sort
\
$(
foreach
file,
\
$(
foreach
dir
,
\
$(source_dirs)
,
\
$(
wildcard
$(dir)
/
*
.xdd
)
\
)
,
$(
notdir
$(file)
)
\
)
\
)
export_xdd
:=
$(
patsubst
%.xdd,
$(exe_dir)
/%.xdd,
$(xdd_sources)
)
clean_xdd
:=
$(
patsubst
%.xdd, clean_%.xdd,
$(xdd_sources)
)
.PHONY
:
all init copy lib exe clean realclean
\
$(clean_xdd)
all
:
init copy
init
:
copy
:
$(export_xdd)
lib
:
exe
:
clean
:
realclean
:
clean $(clean_xdd)
$(export_xdd)
:
$(exe_dir)/%.xdd : %.xdd
@
echo
"Exporting
$<
..."
@
$(cp)
$(cpflags)
$(source)
$(target)
$(clean_xdd)
:
clean_%.xdd : %.xdd
@
rm
$(exe_dir)
/
$*
.xdd
otherio/lib/rt/src/os_linux/rt_io_m_epl_cnserver.c
View file @
591af1b4
...
...
@@ -33,9 +33,14 @@
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "pwr.h"
#include "pwr_basecomponentclasses.h"
#include "co_dcli.h"
#include "rt_io_base.h"
#include "rt_io_rack_init.h"
#include "rt_io_rack_close.h"
...
...
@@ -64,15 +69,16 @@
//---------------------------------------------------------------------------
// module global vars
//---------------------------------------------------------------------------
static
int
debug
=
0
;
static
const
char
abMacAddr
[]
=
{
0x00
,
0x00
,
0x00
,
0x00
,
0x00
,
0x00
};
static
unsigned
int
uiCycleLen_g
=
0
;
static
unsigned
int
uiCurCycleLen_g
=
0
;
// process image stuff
static
tEplApiProcessImageCopyJob
AppProcessImageCopyJob_g
;
static
void
*
AppProcessImageIn_g
;
static
void
*
AppProcessImageOut_g
;
static
tEplApiProcessImageCopyJob
AppProcessImageCopyJob_g
;
/*----------------------------------------------------------------------------*/
//---------------------------------------------------------------------------
...
...
@@ -122,301 +128,271 @@ tEplKernel PUBLIC AppCbEvent (
pwr_sClass_Epl_CNServer
*
op
=
(
pwr_sClass_Epl_CNServer
*
)
pUserArg_p
->
op
;
// check if NMT_GS_OFF is reached
switch
(
EventType_p
)
{
case
kEplApiEventNmtStateChange
:
{
op
->
NmtState
=
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
;
op
->
Status
=
op
->
NmtState
==
pwr_eEplNmtState_EplNmtCsOperational
?
IOM__EPL_OPER
:
IOM__EPL_NOOPER
;
switch
(
EventType_p
)
{
case
kEplApiEventNmtStateChange
:
{
op
->
NmtState
=
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
;
switch
(
op
->
NmtState
)
{
case
pwr_eEplNmtState_EplNmtCsOperational
:
op
->
Status
=
IOM__EPL_OPER
;
break
;
case
pwr_eEplNmtState_EplNmtGsOff
:
op
->
Status
=
IOM__EPL_OFF
;
break
;
case
pwr_eEplNmtState_EplNmtCsBasicEthernet
:
op
->
Status
=
IOM__EPL_BASICETHERNET
;
break
;
case
pwr_eEplNmtState_EplNmtCsPreOperational1
:
op
->
Status
=
IOM__EPL_PREOPER1
;
break
;
case
pwr_eEplNmtState_EplNmtCsPreOperational2
:
op
->
Status
=
IOM__EPL_PREOPER2
;
break
;
default:
op
->
Status
=
IOM__EPL_NOOPER
;
}
switch
(
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
)
{
case
kEplNmtGsOff
:
{
// NMT state machine was shut down,
// because of user signal (CTRL-C) or critical EPL stack error
// -> also shut down EplApiProcess() and main()
EplRet
=
kEplShutdown
;
switch
(
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
)
{
case
kEplNmtGsOff
:
{
// NMT state machine was shut down,
// because of user signal (CTRL-C) or critical EPL stack error
// -> also shut down EplApiProcess() and main()
EplRet
=
kEplShutdown
;
errh_Fatal
(
"Event:kEplNmtGsOff originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
errh_Fatal
(
"Event:kEplNmtGsOff originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
case
kEplNmtGsResetCommunication
:
{
break
;
}
case
kEplNmtGsResetConfiguration
:
{
if
(
uiCycleLen_g
!=
0
)
{
EplRet
=
EplApiWriteLocalObject
(
0x1006
,
0x00
,
&
uiCycleLen_g
,
sizeof
(
uiCycleLen_g
));
uiCurCycleLen_g
=
uiCycleLen_g
;
}
else
{
uiVarLen
=
sizeof
(
uiCurCycleLen_g
);
EplApiReadLocalObject
(
0x1006
,
0x00
,
&
uiCurCycleLen_g
,
&
uiVarLen
);
}
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtMsPreOperational1
:
{
errh_Info
(
"AppCbEvent(0x%X) originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
break
;
}
case
kEplNmtGsResetCommunication
:
{
break
;
}
case
kEplNmtGsResetConfiguration
:
{
if
(
uiCycleLen_g
!=
0
)
{
EplRet
=
EplApiWriteLocalObject
(
0x1006
,
0x00
,
&
uiCycleLen_g
,
sizeof
(
uiCycleLen_g
));
uiCurCycleLen_g
=
uiCycleLen_g
;
}
else
{
uiVarLen
=
sizeof
(
uiCurCycleLen_g
);
EplApiReadLocalObject
(
0x1006
,
0x00
,
&
uiCurCycleLen_g
,
&
uiVarLen
);
}
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtMsPreOperational1
:
{
errh_Info
(
"AppCbEvent(0x%X) originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
case
kEplNmtCsPreOperational2
:
case
kEplNmtMsPreOperational2
:
{
break
;
}
case
kEplNmtCsReadyToOperate
:
case
kEplNmtMsReadyToOperate
:
{
break
;
}
case
kEplNmtGsInitialising
:
{
break
;
}
case
kEplNmtGsResetApplication
:
{
break
;
}
case
kEplNmtMsNotActive
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsOperational
:
case
kEplNmtMsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtMsBasicEthernet
:
{
break
;
}
default:
{
}
}
case
kEplNmtCsPreOperational2
:
case
kEplNmtMsPreOperational2
:
{
break
;
}
case
kEplNmtCsReadyToOperate
:
case
kEplNmtMsReadyToOperate
:
{
break
;
}
case
kEplNmtGsInitialising
:
{
break
;
}
case
kEplNmtGsResetApplication
:
{
break
;
}
case
kEplNmtMsNotActive
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsOperational
:
case
kEplNmtMsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtMsBasicEthernet
:
{
break
;
}
default:
{
}
}
break
;
}
break
;
}
case
kEplApiEventCriticalError
:
case
kEplApiEventWarning
:
{
// error or warning occurred within the stack or the application
// on error the API layer stops the NMT state machine
case
kEplApiEventCriticalError
:
case
kEplApiEventWarning
:
{
// error or warning occurred within the stack or the application
// on error the API layer stops the NMT state machine
errh_Error
(
"%s(Err/Warn): Source = %s (%02X) EplError = %s (0x%03X)"
,
__func__
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_EventSource
,
EplGetEplKernelStr
(
pEventArg_p
->
m_InternalError
.
m_EplError
),
pEventArg_p
->
m_InternalError
.
m_EplError
);
errh_Error
(
"%s(Err/Warn): Source = %s (%02X) EplError = %s (0x%03X)"
,
__func__
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_EventSource
,
EplGetEplKernelStr
(
pEventArg_p
->
m_InternalError
.
m_EplError
),
pEventArg_p
->
m_InternalError
.
m_EplError
);
// check additional argument
switch
(
pEventArg_p
->
m_InternalError
.
m_EventSource
)
{
case
kEplEventSourceEventk
:
case
kEplEventSourceEventu
:
{
// error occurred within event processing
// either in kernel or in user part
// check additional argument
switch
(
pEventArg_p
->
m_InternalError
.
m_EventSource
)
{
case
kEplEventSourceEventk
:
case
kEplEventSourceEventu
:
{
// error occurred within event processing
// either in kernel or in user part
errh_Error
(
" OrgSource = %s %02X"
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
);
errh_Error
(
" OrgSource = %s %02X"
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
);
break
;
}
break
;
}
case
kEplEventSourceDllk
:
{
// error occurred within the data link layer (e.g. interrupt processing)
// the DWORD argument contains the DLL state and the NMT event
case
kEplEventSourceDllk
:
{
// error occurred within the data link layer (e.g. interrupt processing)
// the DWORD argument contains the DLL state and the NMT event
errh_Error
(
" val = %X"
,
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_dwArg
);
errh_Error
(
" val = %X"
,
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_dwArg
);
break
;
}
break
;
}
default:
{
break
;
}
}
break
;
}
default:
{
break
;
}
}
break
;
}
case
kEplApiEventHistoryEntry
:
{
// new history entry
case
kEplApiEventHistoryEntry
:
{
// new history entry
errh_Info
(
"%s(HistoryEntry): Type=0x%04X Code=0x%04X (0x%02X %02X %02X %02X %02X %02X %02X %02X)"
,
__func__
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wEntryType
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wErrorCode
,
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
0
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
1
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
2
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
3
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
4
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
5
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
6
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
7
]);
errh_Info
(
"%s(HistoryEntry): Type=0x%04X Code=0x%04X (0x%02X %02X %02X %02X %02X %02X %02X %02X)"
,
__func__
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wEntryType
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wErrorCode
,
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
0
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
1
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
2
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
3
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
4
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
5
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
6
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
7
]);
break
;
}
break
;
}
case
kEplApiEventNode
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NodeEvent
)
{
case
kEplNmtNodeEventCheckConf
:
{
errh_Info
(
"%s(Node=0x%X, CheckConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventUpdateConf
:
{
errh_Info
(
"%s(Node=0x%X, UpdateConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventFound
:
{
case
kEplApiEventNode
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NodeEvent
)
{
case
kEplNmtNodeEventCheckConf
:
{
errh_Info
(
"%s(Node=0x%X, CheckConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventUpdateConf
:
{
errh_Info
(
"%s(Node=0x%X, UpdateConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventFound
:
{
break
;
}
case
kEplNmtNodeEventNmtState
:
{
#if 0
io_sRack *rp;
rp = (io_sRack *)pUserArg_p;
((pwr_sClass_Epl_CNServer *)rp->op)->NmtState = pEventArg_p->m_Node.m_NmtState;
((pwr_sClass_Epl_CNServer *)rp->op)->Status = ((pwr_sClass_Epl_CNServer *)rp->op)->NmtState == pwr_eEplNmtState_EplNmtCsOperational ? IOM__EPL_OPER : IOM__EPL_NOOPER;
#endif
break
;
}
case
kEplNmtNodeEventNmtState
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NmtState
)
{
case
kEplNmtGsOff
:
case
kEplNmtGsInitialising
:
case
kEplNmtGsResetApplication
:
case
kEplNmtGsResetCommunication
:
case
kEplNmtGsResetConfiguration
:
case
kEplNmtCsNotActive
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NmtState
)
{
case
kEplNmtGsOff
:
case
kEplNmtGsInitialising
:
case
kEplNmtGsResetApplication
:
case
kEplNmtGsResetCommunication
:
case
kEplNmtGsResetConfiguration
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtCsPreOperational2
:
case
kEplNmtCsReadyToOperate
:
{
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtCsPreOperational2
:
case
kEplNmtCsReadyToOperate
:
{
break
;
}
case
kEplNmtCsOperational
:
{
break
;
}
case
kEplNmtCsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtCsStopped
:
default:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtCsStopped
:
default:
{
break
;
}
}
break
;
}
case
kEplNmtNodeEventError
:
{
errh_Error
(
"AppCbEvent (Node=0x%X): Error = %s (0x%.4X)"
,
pEventArg_p
->
m_Node
.
m_uiNodeId
,
EplGetEmergErrCodeStr
(
pEventArg_p
->
m_Node
.
m_wErrorCode
),
pEventArg_p
->
m_Node
.
m_wErrorCode
);
break
;
}
default:
{
break
;
}
}
break
;
}
}
break
;
}
case
kEplApiEventCfmProgress
:
{
errh_Info
(
"%s(Node=0x%X, CFM-Progress: Object 0x%X/%u, %lu/%lu Bytes"
,
__func__
,
pEventArg_p
->
m_CfmProgress
.
m_uiNodeId
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectIndex
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectSubIndex
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwBytesDownloaded
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwTotalNumberOfBytes
);
case
kEplNmtNodeEventError
:
{
errh_Error
(
"AppCbEvent (Node=0x%X): Error = %s (0x%.4X)"
,
pEventArg_p
->
m_Node
.
m_uiNodeId
,
EplGetEmergErrCodeStr
(
pEventArg_p
->
m_Node
.
m_wErrorCode
),
pEventArg_p
->
m_Node
.
m_wErrorCode
);
break
;
}
if
((
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
!=
0
)
||
(
pEventArg_p
->
m_CfmProgress
.
m_EplError
!=
kEplSuccessful
))
{
errh_Error
(
" -> SDO Abort=0x%lX, Error=0x%X)"
,
(
unsigned
long
)
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
,
pEventArg_p
->
m_CfmProgress
.
m_EplError
);
}
else
{
default:
{
break
;
}
}
break
;
}
}
break
;
}
case
kEplApiEventCfmProgress
:
{
errh_Info
(
"%s(Node=0x%X, CFM-Progress: Object 0x%X/%u, %lu/%lu Bytes"
,
__func__
,
pEventArg_p
->
m_CfmProgress
.
m_uiNodeId
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectIndex
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectSubIndex
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwBytesDownloaded
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwTotalNumberOfBytes
);
case
kEplApiEventCfmResult
:
{
switch
(
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
)
{
case
kEplNmtNodeCommandConfOk
:
{
errh_Info
(
"%s(Node=0x%X, ConfOk)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfErr
:
{
errh_Info
(
"%s(Node=0x%X, ConfErr)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfReset
:
{
errh_Info
(
"%s(Node=0x%X, ConfReset)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfRestored
:
{
errh_Info
(
"%s(Node=0x%X, ConfRestored)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
default:
{
errh_Info
(
"%s(Node=0x%X, CfmResult=0x%X)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
,
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
);
break
;
}
}
break
;
}
if
((
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
!=
0
)
||
(
pEventArg_p
->
m_CfmProgress
.
m_EplError
!=
kEplSuccessful
))
{
errh_Error
(
" -> SDO Abort=0x%lX, Error=0x%X)"
,
(
unsigned
long
)
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
,
pEventArg_p
->
m_CfmProgress
.
m_EplError
);
}
else
{
default:
}
break
;
}
case
kEplApiEventCfmResult
:
{
switch
(
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
)
{
case
kEplNmtNodeCommandConfOk
:
{
errh_Info
(
"%s(Node=0x%X, ConfOk)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfErr
:
{
errh_Info
(
"%s(Node=0x%X, ConfErr)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfReset
:
{
errh_Info
(
"%s(Node=0x%X, ConfReset)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfRestored
:
{
errh_Info
(
"%s(Node=0x%X, ConfRestored)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
default:
{
errh_Info
(
"%s(Node=0x%X, CfmResult=0x%X)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
,
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
);
break
;
}
}
break
;
}
default:
break
;
}
return
EplRet
;
}
//---------------------------------------------------------------------------
...
...
@@ -442,18 +418,17 @@ tEplKernel PUBLIC AppCbSync(void)
tEplKernel
EplRet
=
kEplSuccessful
;
EplRet
=
EplApiProcessImageExchange
(
&
AppProcessImageCopyJob_g
);
if
(
EplRet
!=
kEplSuccessful
)
{
return
EplRet
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
return
EplRet
;
}
return
EplRet
;
}
static
pwr_tStatus
IoRackInit
(
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
{
io_sLocalEpl_CNServer
*
local
;
pwr_sClass_Epl_CNServer
*
op
=
(
pwr_sClass_Epl_CNServer
*
)
rp
->
op
;
...
...
@@ -629,11 +604,10 @@ static pwr_tStatus IoRackInit (
// initialize POWERLINK stack
EplRet
=
EplApiInitialize
(
&
EplApiInitParam
);
if
(
EplRet
!=
kEplSuccessful
)
{
errh_Error
(
"EplApiInitialize() failed (Error:0x%x!"
,
EplRet
);
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
errh_Error
(
"EplApiInitialize() failed (Error:0x%x!"
,
EplRet
);
goto
Exit
;
}
// Allocate memory for the in- and outputareas
if
(
local
->
output_area_size
>
0
)
...
...
@@ -641,16 +615,16 @@ static pwr_tStatus IoRackInit (
if
(
local
->
input_area_size
>
0
)
{
AppProcessImageOut_g
=
malloc
(
local
->
input_area_size
);
}
// Save pointer to in- and outputareas in THIS agent object
local
->
input_area
=
AppProcessImageOut_g
;
local
->
output_area
=
AppProcessImageIn_g
;
local
->
output_area
=
AppProcessImageIn_g
;
if
(
local
->
inputResetEnabled
&&
local
->
input_area_size
>
0
)
local
->
tmp_area
=
malloc
(
local
->
input_area_size
);
else
local
->
tmp_area
=
local
->
input_area
;
local
->
tmp_area
=
local
->
input_area
;
AppProcessImageCopyJob_g
.
m_fNonBlocking
=
FALSE
;
AppProcessImageCopyJob_g
.
m_uiPriority
=
0
;
AppProcessImageCopyJob_g
.
m_In
.
m_pPart
=
AppProcessImageIn_g
;
...
...
@@ -667,6 +641,14 @@ static pwr_tStatus IoRackInit (
// Link area values to object dictionary
FILE
*
fp
;
if
(
debug
)
{
pwr_tFileName
fname
=
"$pwrp_load/cnserver_dbg.txt"
;
dcli_translate_filename
(
fname
,
fname
);
fp
=
fopen
(
fname
,
"w"
);
fprintf
(
fp
,
"Index subindex offset size entries
\n
"
);
}
int
prev_in_offs
=
-
1
;
int
prev_out_offs
=
-
1
;
int
di_subidx
=
0x01
;
...
...
@@ -693,11 +675,14 @@ static pwr_tStatus IoRackInit (
obd_entries
=
chanp
->
size
;
obd_offset
=
chanp
->
offset
;
EplRet
=
EplApiProcessImageLinkObject
(
0x6
0
00
,
di_subidx
,
obd_offset
,
FALS
E
,
obd_size
,
&
obd_entries
);
EplRet
=
EplApiProcessImageLinkObject
(
0x6
2
00
,
di_subidx
,
obd_offset
,
TRU
E
,
obd_size
,
&
obd_entries
);
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6200
,
di_subidx
,
obd_offset
,
obd_size
,
obd_entries
);
di_subidx
+=
obd_entries
;
prev_in_offs
=
chanp
->
offset
;
break
;
...
...
@@ -712,15 +697,24 @@ static pwr_tStatus IoRackInit (
obd_entries
=
1
;
obd_offset
=
chanp
->
offset
;
if
(
chanp
->
size
==
1
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6400
,
ai8_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
else
if
(
chanp
->
size
==
2
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6401
,
ai16_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
else
if
(
chanp
->
size
==
4
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6402
,
ai32_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
if
(
chanp
->
size
==
1
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6410
,
ai8_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6410
,
ai8_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
if
(
chanp
->
size
==
2
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6411
,
ai16_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6411
,
ai16_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
if
(
chanp
->
size
==
4
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6412
,
ai32_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6412
,
ai32_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
break
;
...
...
@@ -737,11 +731,13 @@ static pwr_tStatus IoRackInit (
obd_size
=
1
;
obd_entries
=
chanp
->
size
;
obd_offset
=
chanp
->
offset
;
EplRet
=
EplApiProcessImageLinkObject
(
0x6
2
00
,
do_subidx
,
obd_offset
,
TRU
E
,
obd_size
,
&
obd_entries
);
EplRet
=
EplApiProcessImageLinkObject
(
0x6
0
00
,
do_subidx
,
obd_offset
,
FALS
E
,
obd_size
,
&
obd_entries
);
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6200
,
do_subidx
,
obd_offset
,
obd_size
,
obd_entries
);
do_subidx
+=
obd_entries
;
prev_out_offs
=
chanp
->
offset
;
break
;
...
...
@@ -755,15 +751,24 @@ static pwr_tStatus IoRackInit (
obd_entries
=
1
;
obd_offset
=
chanp
->
offset
;
if
(
chanp
->
size
==
1
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6410
,
ao8_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
else
if
(
chanp
->
size
==
2
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6411
,
ao16_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
else
if
(
chanp
->
size
==
4
)
EplRet
=
EplApiProcessImageLinkObject
(
0x6412
,
ao32_subidx
++
,
obd_offset
,
TRUE
,
obd_size
,
&
obd_entries
);
if
(
chanp
->
size
==
1
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6400
,
ao8_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6400
,
ao8_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
if
(
chanp
->
size
==
2
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6401
,
ao16_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6401
,
ao16_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
if
(
chanp
->
size
==
4
)
{
EplRet
=
EplApiProcessImageLinkObject
(
0x6402
,
ao32_subidx
++
,
obd_offset
,
FALSE
,
obd_size
,
&
obd_entries
);
if
(
debug
)
fprintf
(
fp
,
"0x%04x 0x%02x 0x%04x 0x%04x %d
\n
"
,
0x6402
,
ao32_subidx
-
1
,
obd_offset
,
obd_size
,
obd_entries
);
}
else
break
;
...
...
@@ -822,10 +827,8 @@ static pwr_tStatus IoRackInit (
}
}
// EplRet = EplApiProcessImageSetup();
// if (EplRet != kEplSuccessful) {
// goto Exit;
// }
if
(
debug
)
fclose
(
fp
);
// start processing
EplRet
=
EplApiExecNmtCommand
(
kEplNmtEventSwReset
);
...
...
@@ -844,10 +847,10 @@ static pwr_tStatus IoRackInit (
}
static
pwr_tStatus
IoRackClose
(
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
{
tEplKernel
EplRet
=
kEplSuccessful
;
io_sLocalEpl_CNServer
*
local
=
(
io_sLocalEpl_CNServer
*
)
rp
->
Local
;
...
...
@@ -866,10 +869,10 @@ static pwr_tStatus IoRackClose (
}
static
pwr_tStatus
IoRackRead
(
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
{
io_sLocalEpl_CNServer
*
local
=
(
io_sLocalEpl_CNServer
*
)
rp
->
Local
;
pwr_sClass_Epl_CNServer
*
op
=
(
pwr_sClass_Epl_CNServer
*
)
rp
->
op
;
...
...
@@ -881,7 +884,7 @@ static pwr_tStatus IoRackRead (
int
ret
=
IO__SUCCESS
;
if
(
!
rp
->
Local
)
return
ret
;
return
ret
;
// Remeber the time when this functions was called the first time
if
(
local
->
init
==
0
)
{
...
...
@@ -904,11 +907,11 @@ static pwr_tStatus IoRackRead (
// If no bad state and were still in startup there can be no error (else remember when error occurred)
if
(
op
->
NmtState
==
pwr_eEplNmtState_EplNmtMsOperational
||
(
(
local
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
<
op
->
StartupTimeout
)
{
(
local
->
tps
).
tv_sec
=
0
;
local
->
timeoutStatus
=
0
;
(
local
->
tps
).
tv_sec
=
0
;
local
->
timeoutStatus
=
0
;
}
else
if
(
(
local
->
tps
).
tv_sec
==
0
)
{
clock_gettime
(
CLOCK_REALTIME
,
&
local
->
tps
);
clock_gettime
(
CLOCK_REALTIME
,
&
local
->
tps
);
}
// Server error soft limit reached, tell log (once)
...
...
@@ -929,8 +932,8 @@ static pwr_tStatus IoRackRead (
// Server timeout has elapsed, tell log (once)
if
(
(
(
local
->
tpe
).
tv_sec
-
(
local
->
tps
).
tv_sec
)
>=
op
->
Timeout
&&
local
->
timeoutStatus
==
0
&&
(
local
->
tps
).
tv_sec
!=
0
)
{
local
->
timeoutStatus
=
1
;
if
(
op
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
local
->
timeoutStatus
=
1
;
if
(
op
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
errh_Error
(
"IO Server timeout time elapsed '%s', IO stopped"
,
rp
->
Name
);
}
else
if
(
op
->
StallAction
==
pwr_eStallActionEnum_ResetInputs
)
{
...
...
@@ -976,16 +979,16 @@ static pwr_tStatus IoRackRead (
}
static
pwr_tStatus
IoRackWrite
(
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
io_tCtx
ctx
,
io_sAgent
*
ap
,
io_sRack
*
rp
)
{
io_sLocalEpl_CNServer
*
local
=
(
io_sLocalEpl_CNServer
*
)
rp
->
Local
;
io_sCard
*
cp
;
if
(
!
rp
->
Local
)
return
IO__SUCCESS
;
return
IO__SUCCESS
;
for
(
cp
=
rp
->
cardlist
;
cp
;
cp
=
cp
->
next
)
{
io_bus_card_write
(
ctx
,
cp
,
local
->
output_area
,
local
->
byte_ordering
,
pwr_eFloatRepEnum_FloatIEEE
);
...
...
otherio/lib/rt/src/os_linux/rt_io_m_epl_mn.c
View file @
591af1b4
...
...
@@ -34,56 +34,6 @@
* General Public License plus this exception.
**/
/****************************************************************************
(c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
www.systec-electronic.com
(c) Bernecker + Rainer Industrie-Elektronik Ges.m.b.H.
B&R Strasse 1, A-5142 Eggelsberg
www.br-automation.com
License:
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holders nor the names of its
contributors may be used to endorse or promote products derived
from this software without prior written permission. For written
permission, please contact info@systec-electronic.com.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Severability Clause:
If a provision of this License is or becomes illegal, invalid or
unenforceable in any jurisdiction, that shall not affect:
1. the validity or enforceability in that jurisdiction of any other
provision of this License; or
2. the validity or enforceability in other jurisdictions of that or
any other provision of this License.
****************************************************************************/
#include "pwr.h"
#include "pwr_basecomponentclasses.h"
#include "co_dcli.h"
...
...
@@ -107,8 +57,6 @@
#include <rt_pwr_msg.h>
#define pl_Align(offs, align) ((offs + (align - 1)) & ~(align - 1))
/***************************************************************************/
/* */
/* */
...
...
@@ -365,18 +313,16 @@ static pwr_tStatus IoAgentInit (io_tCtx ctx, io_sAgent *ap) {
// initialize POWERLINK stack
EplRet
=
EplApiInitialize
(
&
EplApiInitParam
);
if
(
EplRet
!=
kEplSuccessful
)
{
errh_Error
(
"EplApiInitialize() failed (Error:0x%x!"
,
EplRet
);
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
errh_Error
(
"EplApiInitialize() failed (Error:0x%x!"
,
EplRet
);
goto
Exit
;
}
EplRet
=
EplApiSetCdcFilename
(
cdc_file
);
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
// Allocate memory for the in- and outputareas
if
(
local
->
output_area_size
>
0
)
AppProcessImageIn_g
=
malloc
(
local
->
output_area_size
);
...
...
@@ -403,24 +349,21 @@ static pwr_tStatus IoAgentInit (io_tCtx ctx, io_sAgent *ap) {
AppProcessImageCopyJob_g
.
m_Out
.
m_uiSize
=
local
->
input_area_size
;
EplRet
=
EplApiProcessImageAlloc
(
local
->
output_area_size
,
local
->
input_area_size
,
2
,
2
);
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
EplRet
=
EplApiProcessImageSetup
();
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
goto
Exit
;
}
// start processing
EplRet
=
EplApiExecNmtCommand
(
kEplNmtEventSwReset
);
if
(
EplRet
!=
kEplSuccessful
)
{
IoAgentClose
(
NULL
,
NULL
);
goto
Exit
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
IoAgentClose
(
NULL
,
NULL
);
goto
Exit
;
}
errh_Success
(
"Powerlink init successfull"
);
return
IO__SUCCESS
;
...
...
@@ -464,302 +407,256 @@ tEplKernel PUBLIC AppCbEvent (
io_sRack
*
rp
;
// check if NMT_GS_OFF is reached
switch
(
EventType_p
)
{
case
kEplApiEventNmtStateChange
:
{
op
->
NmtState
=
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
;
op
->
Status
=
op
->
NmtState
==
pwr_eEplNmtState_EplNmtMsOperational
?
IOM__EPL_OPER
:
IOM__EPL_NOOPER
;
switch
(
EventType_p
)
{
case
kEplApiEventNmtStateChange
:
{
op
->
NmtState
=
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
;
op
->
Status
=
op
->
NmtState
==
pwr_eEplNmtState_EplNmtMsOperational
?
IOM__EPL_OPER
:
IOM__EPL_NOOPER
;
switch
(
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
)
{
case
kEplNmtGsOff
:
{
// NMT state machine was shut down,
// because of user signal (CTRL-C) or critical EPL stack error
// -> also shut down EplApiProcess() and main()
EplRet
=
kEplShutdown
;
switch
(
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
)
{
case
kEplNmtGsOff
:
{
// NMT state machine was shut down,
// because of user signal (CTRL-C) or critical EPL stack error
// -> also shut down EplApiProcess() and main()
EplRet
=
kEplShutdown
;
errh_Fatal
(
"Event:kEplNmtGsOff originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
errh_Fatal
(
"Event:kEplNmtGsOff originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
case
kEplNmtGsResetCommunication
:
{
break
;
}
case
kEplNmtGsResetConfiguration
:
{
if
(
uiCycleLen_g
!=
0
)
{
EplRet
=
EplApiWriteLocalObject
(
0x1006
,
0x00
,
&
uiCycleLen_g
,
sizeof
(
uiCycleLen_g
));
uiCurCycleLen_g
=
uiCycleLen_g
;
}
else
{
uiVarLen
=
sizeof
(
uiCurCycleLen_g
);
EplApiReadLocalObject
(
0x1006
,
0x00
,
&
uiCurCycleLen_g
,
&
uiVarLen
);
}
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtMsPreOperational1
:
{
errh_Info
(
"AppCbEvent(0x%X) originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
break
;
}
case
kEplNmtGsResetCommunication
:
{
break
;
}
case
kEplNmtGsResetConfiguration
:
{
if
(
uiCycleLen_g
!=
0
)
{
EplRet
=
EplApiWriteLocalObject
(
0x1006
,
0x00
,
&
uiCycleLen_g
,
sizeof
(
uiCycleLen_g
));
uiCurCycleLen_g
=
uiCycleLen_g
;
}
else
{
uiVarLen
=
sizeof
(
uiCurCycleLen_g
);
EplApiReadLocalObject
(
0x1006
,
0x00
,
&
uiCurCycleLen_g
,
&
uiVarLen
);
}
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtMsPreOperational1
:
{
errh_Info
(
"AppCbEvent(0x%X) originating event = 0x%X (%s)"
,
pEventArg_p
->
m_NmtStateChange
.
m_NewNmtState
,
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
,
EplGetNmtEventStr
(
pEventArg_p
->
m_NmtStateChange
.
m_NmtEvent
));
break
;
}
case
kEplNmtCsPreOperational2
:
case
kEplNmtMsPreOperational2
:
{
break
;
}
case
kEplNmtCsReadyToOperate
:
case
kEplNmtMsReadyToOperate
:
{
break
;
}
case
kEplNmtGsInitialising
:
{
break
;
}
case
kEplNmtGsResetApplication
:
{
break
;
}
case
kEplNmtMsNotActive
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsOperational
:
case
kEplNmtMsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtMsBasicEthernet
:
{
break
;
}
default:
{
}
}
case
kEplNmtCsPreOperational2
:
case
kEplNmtMsPreOperational2
:
{
break
;
}
case
kEplNmtCsReadyToOperate
:
case
kEplNmtMsReadyToOperate
:
{
break
;
}
case
kEplNmtGsInitialising
:
{
break
;
}
case
kEplNmtGsResetApplication
:
{
break
;
}
case
kEplNmtMsNotActive
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsOperational
:
case
kEplNmtMsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtMsBasicEthernet
:
{
break
;
}
default:
{
}
}
break
;
}
break
;
}
case
kEplApiEventCriticalError
:
case
kEplApiEventWarning
:
{
// error or warning occurred within the stack or the application
// on error the API layer stops the NMT state machine
case
kEplApiEventCriticalError
:
case
kEplApiEventWarning
:
{
// error or warning occurred within the stack or the application
// on error the API layer stops the NMT state machine
errh_Error
(
"%s(Err/Warn): Source = %s (%02X) EplError = %s (0x%03X)"
,
__func__
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_EventSource
,
EplGetEplKernelStr
(
pEventArg_p
->
m_InternalError
.
m_EplError
),
pEventArg_p
->
m_InternalError
.
m_EplError
);
errh_Error
(
"%s(Err/Warn): Source = %s (%02X) EplError = %s (0x%03X)"
,
__func__
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_EventSource
,
EplGetEplKernelStr
(
pEventArg_p
->
m_InternalError
.
m_EplError
),
pEventArg_p
->
m_InternalError
.
m_EplError
);
// check additional argument
switch
(
pEventArg_p
->
m_InternalError
.
m_EventSource
)
{
case
kEplEventSourceEventk
:
case
kEplEventSourceEventu
:
{
// error occurred within event processing
// either in kernel or in user part
// check additional argument
switch
(
pEventArg_p
->
m_InternalError
.
m_EventSource
)
{
case
kEplEventSourceEventk
:
case
kEplEventSourceEventu
:
{
// error occurred within event processing
// either in kernel or in user part
errh_Error
(
" OrgSource = %s %02X"
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
);
errh_Error
(
" OrgSource = %s %02X"
,
EplGetEventSourceStr
(
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
),
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_EventSource
);
break
;
}
break
;
}
case
kEplEventSourceDllk
:
{
// error occurred within the data link layer (e.g. interrupt processing)
// the DWORD argument contains the DLL state and the NMT event
case
kEplEventSourceDllk
:
{
// error occurred within the data link layer (e.g. interrupt processing)
// the DWORD argument contains the DLL state and the NMT event
errh_Error
(
" val = %X"
,
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_dwArg
);
errh_Error
(
" val = %X"
,
pEventArg_p
->
m_InternalError
.
m_Arg
.
m_dwArg
);
break
;
}
default:
{
break
;
}
}
break
;
}
break
;
}
case
kEplApiEventHistoryEntry
:
{
// new history entry
default:
{
break
;
}
}
break
;
}
case
kEplApiEventHistoryEntry
:
{
// new history entry
errh_Info
(
"%s(HistoryEntry): Type=0x%04X Code=0x%04X (0x%02X %02X %02X %02X %02X %02X %02X %02X)"
,
__func__
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wEntryType
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wErrorCode
,
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
0
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
1
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
2
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
3
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
4
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
5
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
6
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
7
]);
errh_Info
(
"%s(HistoryEntry): Type=0x%04X Code=0x%04X (0x%02X %02X %02X %02X %02X %02X %02X %02X)"
,
__func__
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wEntryType
,
pEventArg_p
->
m_ErrHistoryEntry
.
m_wErrorCode
,
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
0
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
1
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
2
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
3
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
4
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
5
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
6
],
(
WORD
)
pEventArg_p
->
m_ErrHistoryEntry
.
m_abAddInfo
[
7
]);
break
;
}
break
;
}
case
kEplApiEventNode
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NodeEvent
)
{
case
kEplNmtNodeEventCheckConf
:
{
errh_Info
(
"%s(Node=0x%X, CheckConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventUpdateConf
:
{
errh_Info
(
"%s(Node=0x%X, UpdateConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventFound
:
{
case
kEplApiEventNode
:
{
switch
(
pEventArg_p
->
m_Node
.
m_NodeEvent
)
{
case
kEplNmtNodeEventCheckConf
:
{
errh_Info
(
"%s(Node=0x%X, CheckConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventUpdateConf
:
{
errh_Info
(
"%s(Node=0x%X, UpdateConf)"
,
__func__
,
pEventArg_p
->
m_Node
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeEventFound
:
{
break
;
}
case
kEplNmtNodeEventNmtState
:
{
for
(
rp
=
pUserArg_p
->
racklist
;
rp
;
rp
=
rp
->
next
)
if
(((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NodeId
==
pEventArg_p
->
m_Node
.
m_uiNodeId
)
{
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
=
pEventArg_p
->
m_Node
.
m_NmtState
;
break
;
}
case
kEplNmtNodeEventNmtState
:
{
for
(
rp
=
pUserArg_p
->
racklist
;
rp
;
rp
=
rp
->
next
)
if
(((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NodeId
==
pEventArg_p
->
m_Node
.
m_uiNodeId
)
{
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
=
pEventArg_p
->
m_Node
.
m_NmtState
;
}
}
switch
(
pEventArg_p
->
m_Node
.
m_NmtState
)
{
case
kEplNmtGsOff
:
case
kEplNmtGsInitialising
:
case
kEplNmtGsResetApplication
:
case
kEplNmtGsResetCommunication
:
case
kEplNmtGsResetConfiguration
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtCsPreOperational2
:
case
kEplNmtCsReadyToOperate
:
{
break
;
}
case
kEplNmtCsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtCsStopped
:
default:
{
break
;
}
}
break
;
}
case
kEplNmtNodeEventError
:
{
errh_Error
(
"AppCbEvent (Node=0x%X): Error = %s (0x%.4X)"
,
pEventArg_p
->
m_Node
.
m_uiNodeId
,
EplGetEmergErrCodeStr
(
pEventArg_p
->
m_Node
.
m_wErrorCode
),
pEventArg_p
->
m_Node
.
m_wErrorCode
);
break
;
}
default:
{
break
;
}
}
switch
(
pEventArg_p
->
m_Node
.
m_NmtState
)
{
case
kEplNmtGsOff
:
case
kEplNmtGsInitialising
:
case
kEplNmtGsResetApplication
:
case
kEplNmtGsResetCommunication
:
case
kEplNmtGsResetConfiguration
:
case
kEplNmtCsNotActive
:
{
break
;
}
case
kEplApiEventCfmProgress
:
{
errh_Info
(
"%s(Node=0x%X, CFM-Progress: Object 0x%X/%u, %lu/%lu Bytes"
,
__func__
,
pEventArg_p
->
m_CfmProgress
.
m_uiNodeId
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectIndex
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectSubIndex
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwBytesDownloaded
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwTotalNumberOfBytes
);
if
((
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
!=
0
)
||
(
pEventArg_p
->
m_CfmProgress
.
m_EplError
!=
kEplSuccessful
))
{
errh_Error
(
" -> SDO Abort=0x%lX, Error=0x%X)"
,
(
unsigned
long
)
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
,
pEventArg_p
->
m_CfmProgress
.
m_EplError
);
}
else
{
}
case
kEplNmtCsPreOperational1
:
case
kEplNmtCsPreOperational2
:
case
kEplNmtCsReadyToOperate
:
{
break
;
}
case
kEplApiEventCfmResult
:
{
switch
(
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
)
{
case
kEplNmtNodeCommandConfOk
:
{
errh_Info
(
"%s(Node=0x%X, ConfOk)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfErr
:
{
errh_Info
(
"%s(Node=0x%X, ConfErr)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfReset
:
{
errh_Info
(
"%s(Node=0x%X, ConfReset)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfRestored
:
{
errh_Info
(
"%s(Node=0x%X, ConfRestored)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
default:
{
errh_Info
(
"%s(Node=0x%X, CfmResult=0x%X)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
,
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
);
break
;
}
}
case
kEplNmtCsOperational
:
{
break
;
}
case
kEplNmtCsBasicEthernet
:
case
kEplNmtCsStopped
:
default:
{
break
;
}
}
break
;
}
case
kEplNmtNodeEventError
:
{
errh_Error
(
"AppCbEvent (Node=0x%X): Error = %s (0x%.4X)"
,
pEventArg_p
->
m_Node
.
m_uiNodeId
,
EplGetEmergErrCodeStr
(
pEventArg_p
->
m_Node
.
m_wErrorCode
),
pEventArg_p
->
m_Node
.
m_wErrorCode
);
break
;
}
default:
{
break
;
}
}
break
;
}
case
kEplApiEventCfmProgress
:
{
errh_Info
(
"%s(Node=0x%X, CFM-Progress: Object 0x%X/%u, %lu/%lu Bytes"
,
__func__
,
pEventArg_p
->
m_CfmProgress
.
m_uiNodeId
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectIndex
,
pEventArg_p
->
m_CfmProgress
.
m_uiObjectSubIndex
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwBytesDownloaded
,
(
ULONG
)
pEventArg_p
->
m_CfmProgress
.
m_dwTotalNumberOfBytes
);
if
((
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
!=
0
)
||
(
pEventArg_p
->
m_CfmProgress
.
m_EplError
!=
kEplSuccessful
))
{
errh_Error
(
" -> SDO Abort=0x%lX, Error=0x%X)"
,
(
unsigned
long
)
pEventArg_p
->
m_CfmProgress
.
m_dwSdoAbortCode
,
pEventArg_p
->
m_CfmProgress
.
m_EplError
);
}
else
{
}
break
;
}
case
kEplApiEventCfmResult
:
{
switch
(
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
)
{
case
kEplNmtNodeCommandConfOk
:
{
errh_Info
(
"%s(Node=0x%X, ConfOk)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfErr
:
{
errh_Info
(
"%s(Node=0x%X, ConfErr)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
case
kEplNmtNodeCommandConfReset
:
{
errh_Info
(
"%s(Node=0x%X, ConfReset)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
default:
case
kEplNmtNodeCommandConfRestored
:
{
errh_Info
(
"%s(Node=0x%X, ConfRestored)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
);
break
;
}
default:
{
errh_Info
(
"%s(Node=0x%X, CfmResult=0x%X)"
,
__func__
,
pEventArg_p
->
m_CfmResult
.
m_uiNodeId
,
pEventArg_p
->
m_CfmResult
.
m_NodeCommand
);
break
;
}
}
break
;
}
default:
break
;
}
return
EplRet
;
}
//---------------------------------------------------------------------------
//
// Function: AppCbSync
...
...
@@ -783,10 +680,9 @@ tEplKernel PUBLIC AppCbSync(void)
tEplKernel
EplRet
=
kEplSuccessful
;
EplRet
=
EplApiProcessImageExchange
(
&
AppProcessImageCopyJob_g
);
if
(
EplRet
!=
kEplSuccessful
)
{
return
EplRet
;
}
if
(
EplRet
!=
kEplSuccessful
)
{
return
EplRet
;
}
return
EplRet
;
}
/*----------------------------------------------------------------------------*\
...
...
@@ -826,7 +722,7 @@ static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
int
ret
=
IO__SUCCESS
;
if
(
!
ap
->
Local
)
return
ret
;
return
ret
;
// Remeber the time when this functions was called the first time
if
(
local
->
init
==
0
)
{
...
...
@@ -837,22 +733,22 @@ static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
// Time now (tps = time when bad state occurred)
clock_gettime
(
CLOCK_REALTIME
,
&
local
->
tpe
);
error_count
=
op
->
ErrorCount
;
error_count
=
op
->
ErrorCount
;
// Add to error count if agent changed from good to bad state and setup is complete
if
(
local
->
prevState
==
pwr_eEplNmtState_EplNmtMsOperational
&&
op
->
NmtState
!=
pwr_eEplNmtState_EplNmtMsOperational
&&
(
(
local
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
>=
op
->
StartupTimeout
)
op
->
ErrorCount
++
;
// Copy Powerlink process image to temp memory (only if stallaction=resetinputs else tmp_area=input_area)
if
(
op
->
StallAction
==
pwr_eStallActionEnum_ResetInputs
)
if
(
local
->
inputResetEnabled
)
memcpy
(
local
->
tmp_area
,
local
->
input_area
,
local
->
input_area_size
);
// If no bad state and were still in startup there can be no error (else remember when error occurred)
if
(
op
->
NmtState
==
pwr_eEplNmtState_EplNmtMsOperational
||
(
(
local
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
<
op
->
StartupTimeout
)
{
(
local
->
tps
).
tv_sec
=
0
;
local
->
timeoutStatus
=
0
;
(
local
->
tps
).
tv_sec
=
0
;
local
->
timeoutStatus
=
0
;
}
else
if
(
(
local
->
tps
).
tv_sec
==
0
)
{
clock_gettime
(
CLOCK_REALTIME
,
&
local
->
tps
);
clock_gettime
(
CLOCK_REALTIME
,
&
local
->
tps
);
}
// Agent error soft limit reached, tell log (once)
...
...
@@ -873,8 +769,8 @@ static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
// Agent timeout has elapsed, tell log (once)
if
(
(
(
local
->
tpe
).
tv_sec
-
(
local
->
tps
).
tv_sec
)
>=
op
->
Timeout
&&
local
->
timeoutStatus
==
0
&&
(
local
->
tps
).
tv_sec
!=
0
)
{
local
->
timeoutStatus
=
1
;
if
(
op
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
local
->
timeoutStatus
=
1
;
if
(
op
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
errh_Error
(
"IO Agent timeout time elapsed '%s', IO stopped"
,
ap
->
Name
);
}
else
if
(
op
->
StallAction
==
pwr_eStallActionEnum_ResetInputs
)
{
...
...
@@ -922,9 +818,9 @@ static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
clock_gettime
(
CLOCK_REALTIME
,
&
local1
->
tpe
);
error_count
=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorCount
;
// Add to error count if slave changed from good to bad state and setup is complete
if
(
local1
->
prevState
==
pwr_eEplNmtState_EplNmtCsOperational
&&
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
!=
pwr_eEplNmtState_EplNmtCsOperational
&&
(
(
local1
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
>=
op
->
StartupTimeout
)
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorCount
++
;
// Add to error count if slave changed from good to bad state and setup is complete
if
(
local1
->
prevState
==
pwr_eEplNmtState_EplNmtCsOperational
&&
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
!=
pwr_eEplNmtState_EplNmtCsOperational
&&
(
(
local1
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
>=
op
->
StartupTimeout
)
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorCount
++
;
// Save time when bad state occurs
if
(
(
(
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
==
pwr_eEplNmtState_EplNmtCsOperational
||
(
(
local1
->
tpe
).
tv_sec
-
(
local
->
boot
).
tv_sec
)
<
op
->
StartupTimeout
)
{
...
...
@@ -943,50 +839,50 @@ static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorCount
>=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorHardLimit
&&
error_count
<
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorHardLimit
)
{
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
errh_Error
(
"IO Rack ErrorHardLimit reached '%s', IO stopped"
,
rp
->
Name
);
errh_Error
(
"IO Rack ErrorHardLimit reached '%s', IO stopped"
,
rp
->
Name
);
}
else
errh_Error
(
"IO Rack ErrorHardLimit reached '%s'"
,
rp
->
Name
);
errh_Error
(
"IO Rack ErrorHardLimit reached '%s'"
,
rp
->
Name
);
}
// Slave timeout has elapsed, tell log (once)
if
(
(
(
local1
->
tpe
).
tv_sec
-
(
local1
->
tps
).
tv_sec
)
>=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
Timeout
&&
local1
->
timeoutStatus
==
0
&&
(
local1
->
tps
).
tv_sec
!=
0
)
{
local1
->
timeoutStatus
=
1
;
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
errh_Error
(
"Rack timeout time elapsed '%s', IO stopped"
,
rp
->
Name
);
local1
->
timeoutStatus
=
1
;
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
errh_Error
(
"Rack timeout time elapsed '%s', IO stopped"
,
rp
->
Name
);
}
else
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_ResetInputs
)
{
errh_Error
(
"Rack timeout time elapsed '%s', IO input area reset"
,
rp
->
Name
);
errh_Error
(
"Rack timeout time elapsed '%s', IO input area reset"
,
rp
->
Name
);
}
else
errh_Error
(
"Rack timeout time elapsed '%s'"
,
rp
->
Name
);
errh_Error
(
"Rack timeout time elapsed '%s'"
,
rp
->
Name
);
}
// Slave error hard limit reached, take action (always)
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorCount
>=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
ErrorHardLimit
)
{
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
ctx
->
Node
->
EmergBreakTrue
=
1
;
errh_SetStatus
(
PWR__SRVFATAL
);
IoAgentClose
(
ctx
,
ap
);
ctx
->
Node
->
EmergBreakTrue
=
1
;
errh_SetStatus
(
PWR__SRVFATAL
);
IoAgentClose
(
ctx
,
ap
);
}
ret
=
IO__ERRDEVICE
;
}
// Slave timeout elapsed, take action (always)
if
(
(
(
local1
->
tpe
).
tv_sec
-
(
local1
->
tps
).
tv_sec
)
>=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
Timeout
&&
(
local1
->
tps
).
tv_sec
!=
0
)
{
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
ctx
->
Node
->
EmergBreakTrue
=
1
;
errh_SetStatus
(
PWR__SRVFATAL
);
IoAgentClose
(
ctx
,
ap
);
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_EmergencyBreak
)
{
ctx
->
Node
->
EmergBreakTrue
=
1
;
errh_SetStatus
(
PWR__SRVFATAL
);
IoAgentClose
(
ctx
,
ap
);
}
else
if
(
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
StallAction
==
pwr_eStallActionEnum_ResetInputs
)
{
memset
(
local
->
tmp_area
+
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
InputAreaOffset
,
0
,
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
InputAreaSize
);
memset
(
local
->
tmp_area
+
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
InputAreaOffset
,
0
,
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
InputAreaSize
);
}
ret
=
IO__ERRDEVICE
;
}
// Remeber slave state til next scan
local1
->
prevState
=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
;
// Remeber slave state til next scan
local1
->
prevState
=
((
pwr_sClass_Epl_CN
*
)
rp
->
op
)
->
NmtState
;
// Update Proview chan-objects with data from Powerlink process image
for
(
cp
=
rp
->
cardlist
;
cp
;
cp
=
cp
->
next
)
{
...
...
@@ -1006,7 +902,7 @@ static pwr_tStatus IoAgentWrite( io_tCtx ctx, io_sAgent *ap) {
io_sCard
*
cp
;
if
(
!
ap
->
Local
)
return
IO__SUCCESS
;
return
IO__SUCCESS
;
for
(
rp
=
ap
->
racklist
;
rp
;
rp
=
rp
->
next
)
{
for
(
cp
=
rp
->
cardlist
;
cp
;
cp
=
cp
->
next
)
{
...
...
otherio/lib/wb/src/wb_c_epl_cnserver.cpp
0 → 100644
View file @
591af1b4
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2012 SSAB EMEA AB.
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Proview. If not, see <http://www.gnu.org/licenses/>
*
* Linking Proview statically or dynamically with other modules is
* making a combined work based on Proview. Thus, the terms and
* conditions of the GNU General Public License cover the whole
* combination.
*
* In addition, as a special exception, the copyright holders of
* Proview give you permission to, from the build function in the
* Proview Configurator, combine Proview with modules generated by the
* Proview PLC Editor to a PLC program, regardless of the license
* terms of these modules. You may copy and distribute the resulting
* combined work under the terms of your choice, provided that every
* copy of the combined work is accompanied by a complete copy of
* the source code of Proview (the version used to produce the
* combined work), being distributed under the terms of the GNU
* General Public License plus this exception.
**/
/* wb_c_epl_mn.c -- work bench methods of the Epl_MN class. */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "pwr.h"
#include "pwr_baseclasses.h"
#include "pwr_basecomponentclasses.h"
#include "pwr_otherioclasses.h"
#include "wb_pwrs.h"
#include "co_dcli.h"
#include "wb_ldh_msg.h"
#include "wb_ldh.h"
#include "wb_pwrb_msg.h"
#include "wb_wnav.h"
#include "wb_wsx.h"
#include "wb_session.h"
#include "wb_object.h"
#include "wb_attribute.h"
using
namespace
std
;
static
pwr_tStatus
GenerateXddFile
(
ldh_sMenuCall
*
ip
)
{
pwr_tFileName
finname
=
"$pwr_exe/cn_template.xdd"
;
pwr_tFileName
foutname
=
"$pwrp_exe/cn.xdd"
;
FILE
*
fin
;
FILE
*
fout
;
char
line
[
400
];
char
l2
[
400
];
wb_session
*
sp
=
(
wb_session
*
)
ip
->
PointedSession
;
wb_object
o
=
sp
->
object
(
ip
->
Pointed
.
Objid
);
dcli_translate_filename
(
finname
,
finname
);
fin
=
fopen
(
finname
,
"r"
);
if
(
!
fin
)
return
0
;
sprintf
(
foutname
,
"$pwrp_cnf/%s.xdd"
,
o
.
name
());
cdh_ToLower
(
foutname
,
foutname
);
dcli_translate_filename
(
foutname
,
foutname
);
fout
=
fopen
(
foutname
,
"w"
);
if
(
!
fout
)
return
0
;
while
(
dcli_read_line
(
line
,
sizeof
(
line
),
fin
))
{
dcli_trim
(
l2
,
line
);
if
(
strcmp
(
l2
,
"</ObjectList>"
)
==
0
)
{
pwr_tEnum
representation
;
pwr_tUInt16
number
;
unsigned
short
mv_index
;
unsigned
short
mv_subindex
;
unsigned
short
mv_offset
;
unsigned
short
mv_size
;
int
di_entries
=
0
;
int
do_entries
=
0
;
int
ai8_entries
=
0
;
int
ai16_entries
=
0
;
int
ai32_entries
=
0
;
int
ao8_entries
=
0
;
int
ao16_entries
=
0
;
int
ao32_entries
=
0
;
int
rx_entries
;
int
tx_entries
;
// Count entries
for
(
wb_object
child
=
o
.
first
();
child
;
child
=
child
.
after
())
{
for
(
wb_object
grandchild
=
child
.
first
();
grandchild
;
grandchild
=
grandchild
.
after
())
{
switch
(
grandchild
.
cid
())
{
case
pwr_cClass_ChanDi
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Number"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
number
);
if
(
!
a
)
return
a
.
sts
();
if
(
number
==
0
)
{
switch
(
representation
)
{
case
pwr_eDataRepEnum_Bit8
:
di_entries
+=
1
;
break
;
case
pwr_eDataRepEnum_Bit16
:
di_entries
+=
2
;
break
;
case
pwr_eDataRepEnum_Bit32
:
di_entries
+=
4
;
break
;
case
pwr_eDataRepEnum_Bit64
:
di_entries
+=
8
;
break
;
}
}
break
;
}
case
pwr_cClass_ChanDo
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Number"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
number
);
if
(
!
a
)
return
a
.
sts
();
if
(
number
==
0
)
{
switch
(
representation
)
{
case
pwr_eDataRepEnum_Bit8
:
do_entries
+=
1
;
break
;
case
pwr_eDataRepEnum_Bit16
:
do_entries
+=
2
;
break
;
case
pwr_eDataRepEnum_Bit32
:
do_entries
+=
4
;
break
;
case
pwr_eDataRepEnum_Bit64
:
do_entries
+=
8
;
break
;
}
}
break
;
}
case
pwr_cClass_ChanAi
:
case
pwr_cClass_ChanIi
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
switch
(
representation
)
{
case
pwr_eDataRepEnum_Int8
:
case
pwr_eDataRepEnum_UInt8
:
ai8_entries
++
;
break
;
case
pwr_eDataRepEnum_Int16
:
case
pwr_eDataRepEnum_UInt16
:
ai16_entries
++
;
break
;
case
pwr_eDataRepEnum_Int32
:
case
pwr_eDataRepEnum_UInt32
:
ai32_entries
++
;
break
;
default:
;
}
break
;
}
case
pwr_cClass_ChanIo
:
case
pwr_cClass_ChanAo
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
switch
(
representation
)
{
case
pwr_eDataRepEnum_Int8
:
case
pwr_eDataRepEnum_UInt8
:
ao8_entries
++
;
break
;
case
pwr_eDataRepEnum_Int16
:
case
pwr_eDataRepEnum_UInt16
:
ao16_entries
++
;
break
;
case
pwr_eDataRepEnum_Int32
:
case
pwr_eDataRepEnum_UInt32
:
ao32_entries
++
;
break
;
default:
;
}
break
;
}
default:
;
}
}
}
// Rx mapping
rx_entries
=
di_entries
+
ai8_entries
+
ai16_entries
+
ai32_entries
;
if
(
rx_entries
>
0
)
{
int
di_cnt
=
0
;
int
ai8_cnt
=
0
;
int
ai16_cnt
=
0
;
int
ai32_cnt
=
0
;
int
rx_cnt
=
0
;
int
entries
;
int
rx_offset
=
0
;
fprintf
(
fout
,
" <Object index=
\"
1600
\"
name=
\"
PDO_RxMappParam_00h_AU64
\"
objectType=
\"
8
\"
CDCFlag=
\"
TRUE
\"
>
\n
"
);
fprintf
(
fout
,
" <SubObject subIndex=
\"
00
\"
name=
\"
NumberOfEntries
\"
objectType=
\"
7
\"
dataType=
\"
0005
\"
accessType=
\"
rw
\"
defaultValue=
\"
0x00
\"
actualValue=
\"
0x%02x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
rx_entries
);
rx_cnt
++
;
for
(
wb_object
child
=
o
.
first
();
child
;
child
=
child
.
after
())
{
for
(
wb_object
grandchild
=
child
.
first
();
grandchild
;
grandchild
=
grandchild
.
after
())
{
switch
(
grandchild
.
cid
())
{
case
pwr_cClass_ChanDi
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Number"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
number
);
if
(
!
a
)
return
a
.
sts
();
if
(
number
==
0
)
{
switch
(
representation
)
{
case
pwr_eDataRepEnum_Bit8
:
entries
=
1
;
break
;
case
pwr_eDataRepEnum_Bit16
:
entries
=
2
;
break
;
case
pwr_eDataRepEnum_Bit32
:
entries
=
4
;
break
;
case
pwr_eDataRepEnum_Bit64
:
entries
=
8
;
break
;
}
for
(
int
i
=
0
;
i
<
entries
;
i
++
)
{
mv_index
=
0x6200
;
mv_subindex
=
di_cnt
+
1
;
mv_size
=
8
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
rx_cnt
,
mv_size
,
rx_offset
,
mv_subindex
,
mv_index
);
rx_offset
+=
mv_size
;
di_cnt
++
;
rx_cnt
++
;
}
}
break
;
}
case
pwr_cClass_ChanAi
:
case
pwr_cClass_ChanIi
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
switch
(
representation
)
{
case
pwr_eDataRepEnum_Int8
:
case
pwr_eDataRepEnum_UInt8
:
mv_index
=
0x6410
;
mv_subindex
=
ai8_cnt
+
1
;
mv_size
=
8
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
rx_cnt
,
mv_size
,
rx_offset
,
mv_subindex
,
mv_index
);
rx_offset
+=
mv_size
;
ai8_cnt
++
;
rx_cnt
++
;
break
;
case
pwr_eDataRepEnum_Int16
:
case
pwr_eDataRepEnum_UInt16
:
mv_index
=
0x6411
;
mv_subindex
=
ai16_cnt
+
1
;
mv_size
=
16
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
rx_cnt
,
mv_size
,
rx_offset
,
mv_subindex
,
mv_index
);
rx_offset
+=
mv_size
;
ai16_cnt
++
;
rx_cnt
++
;
break
;
case
pwr_eDataRepEnum_Int32
:
case
pwr_eDataRepEnum_UInt32
:
mv_index
=
0x6412
;
mv_subindex
=
ai32_cnt
+
1
;
mv_size
=
32
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
rx_cnt
,
mv_size
,
rx_offset
,
mv_subindex
,
mv_index
);
rx_offset
+=
mv_size
;
ai32_cnt
++
;
rx_cnt
++
;
break
;
default:
;
}
break
;
}
default:
;
}
}
}
fprintf
(
fout
,
" </Object>
\n
"
);
}
// Tx mapping
tx_entries
=
do_entries
+
ao8_entries
+
ao16_entries
+
ao32_entries
;
if
(
tx_entries
>
0
)
{
int
do_cnt
=
0
;
int
ao8_cnt
=
0
;
int
ao16_cnt
=
0
;
int
ao32_cnt
=
0
;
int
tx_cnt
=
0
;
int
tx_offset
=
0
;
int
entries
;
fprintf
(
fout
,
" <Object index=
\"
1A00
\"
name=
\"
PDO_TxMappParam_00h_AU64
\"
objectType=
\"
8
\"
CDCFlag=
\"
TRUE
\"
>
\n
"
);
fprintf
(
fout
,
" <SubObject subIndex=
\"
00
\"
name=
\"
NumberOfEntries
\"
objectType=
\"
7
\"
dataType=
\"
0005
\"
accessType=
\"
rw
\"
defaultValue=
\"
0x00
\"
actualValue=
\"
0x%x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
tx_entries
);
tx_cnt
++
;
for
(
wb_object
child
=
o
.
first
();
child
;
child
=
child
.
after
())
{
for
(
wb_object
grandchild
=
child
.
first
();
grandchild
;
grandchild
=
grandchild
.
after
())
{
switch
(
grandchild
.
cid
())
{
case
pwr_cClass_ChanDo
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Number"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
number
);
if
(
!
a
)
return
a
.
sts
();
if
(
number
==
0
)
{
switch
(
representation
)
{
case
pwr_eDataRepEnum_Bit8
:
entries
=
1
;
break
;
case
pwr_eDataRepEnum_Bit16
:
entries
=
2
;
break
;
case
pwr_eDataRepEnum_Bit32
:
entries
=
4
;
break
;
case
pwr_eDataRepEnum_Bit64
:
entries
=
8
;
break
;
}
for
(
int
i
=
0
;
i
<
entries
;
i
++
)
{
mv_index
=
0x6000
;
mv_subindex
=
do_cnt
+
1
;
mv_offset
=
do_cnt
*
8
;
mv_size
=
8
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
tx_cnt
,
mv_size
,
tx_offset
,
mv_subindex
,
mv_index
);
tx_offset
+=
mv_size
;
do_cnt
++
;
tx_cnt
++
;
}
}
break
;
}
case
pwr_cClass_ChanIo
:
case
pwr_cClass_ChanAo
:
{
wb_attribute
a
=
sp
->
attribute
(
grandchild
.
oid
(),
"RtBody"
,
"Representation"
);
if
(
!
a
)
return
a
.
sts
();
a
.
value
(
&
representation
);
if
(
!
a
)
return
a
.
sts
();
switch
(
representation
)
{
case
pwr_eDataRepEnum_Int8
:
case
pwr_eDataRepEnum_UInt8
:
mv_index
=
0x6400
;
mv_subindex
=
ao8_cnt
+
1
;
mv_size
=
8
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
tx_cnt
,
mv_size
,
tx_offset
,
mv_subindex
,
mv_index
);
tx_offset
+=
mv_size
;
ao8_cnt
++
;
tx_cnt
++
;
break
;
case
pwr_eDataRepEnum_Int16
:
case
pwr_eDataRepEnum_UInt16
:
mv_index
=
0x6401
;
mv_subindex
=
ao16_cnt
+
1
;
mv_size
=
16
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
tx_cnt
,
mv_size
,
tx_offset
,
mv_subindex
,
mv_index
);
tx_offset
+=
mv_size
;
ao16_cnt
++
;
tx_cnt
++
;
break
;
case
pwr_eDataRepEnum_Int32
:
case
pwr_eDataRepEnum_UInt32
:
mv_index
=
0x6402
;
mv_subindex
=
ao32_cnt
+
1
;
mv_size
=
32
;
fprintf
(
fout
,
" <SubObject subIndex=
\"
%02x
\"
name=
\"
ObjectMapping
\"
objectType=
\"
7
\"
dataType=
\"
001B
\"
accessType=
\"
rw/ro
\"
defaultValue=
\"
0
\"
actualValue=
\"
0x%04x%04x%04x%04x
\"
CDCFlag=
\"
TRUE
\"
/>
\n
"
,
tx_cnt
,
mv_size
,
tx_offset
,
mv_subindex
,
mv_index
);
tx_offset
+=
mv_size
;
ao32_cnt
++
;
tx_cnt
++
;
break
;
default:
;
}
break
;
}
default:
;
}
}
}
fprintf
(
fout
,
" </Object>
\n
"
);
}
fprintf
(
fout
,
"%s
\n
"
,
line
);
}
else
{
fprintf
(
fout
,
"%s
\n
"
,
line
);
}
}
fclose
(
fin
);
fclose
(
fout
);
char
msg
[
300
];
sprintf
(
msg
,
"Xdd file generated, %s"
,
foutname
);
ip
->
wnav
->
message
(
'I'
,
msg
);
return
1
;
}
static
pwr_tStatus
GenerateXddFileFilter
(
ldh_sMenuCall
*
ip
)
{
return
1
;
}
//
// Syntax check.
//
#if 0
static pwr_tStatus SyntaxCheck (
ldh_tSesContext Session,
pwr_tAttrRef Object, /* current object */
int *ErrorCount, /* accumulated error count */
int *WarningCount /* accumulated waring count */
) {
return wsx_CheckIoDevice( Session, Object, ErrorCount, WarningCount, wsx_mCardOption_None);
}
#endif
/*----------------------------------------------------------------------------*\
Every method to be exported to the workbench should be registred here.
\*----------------------------------------------------------------------------*/
pwr_dExport
pwr_BindMethods
(
Epl_CNServer
)
=
{
pwr_BindMethod
(
GenerateXddFile
),
pwr_BindMethod
(
GenerateXddFileFilter
),
pwr_NullMethod
};
otherio/lib/wb/src/wb_c_epl_mn.cpp
View file @
591af1b4
...
...
@@ -61,7 +61,7 @@ static pwr_tStatus Configure (
ldh_sMenuCall
*
ip
)
{
pwr_tCmd
cmd
=
"
export HOME=$pwrp_login;openCONFIGURATOR
"
;
pwr_tCmd
cmd
=
"
open_powerlink_configurator.sh &
"
;
system
(
cmd
);
...
...
otherio/lib/wb/src/wb_otherio.meth
View file @
591af1b4
#if OS_LINUX
Epl_MN
Epl_CNServer
#endif
\ No newline at end of file
otherio/mmi/mcomp/src/mcomp_epl_cn.pwg
0 → 100644
View file @
591af1b4
0! DefaultWidth 0
0! DefaultHeight 0
199
!/**
! PressureSensor
! Group Components/BaseComponent
!
! <image> bcomp_pressuresensor_gs.gif
!
! <h1>Description
! Pressure sensor. Graphic symbol for basecomponent BasePressureSensor.
! Should be connected to an instance of BasePressureSensor, or a
! subclass to this class.
!
! <h1>Default dynamics
! HostObject <link>GeDynHostObject, ,$pwr_lang/man_geref.dat
!
! Dynamics for the symbol
! - flashing red when the high-high or low-low limits are exceeded.
! - colored yellow when the high or low limits are exceeded.
! - popupmenu with the methods of the connected object.
!
! DigFlash <t>$hostobject.IndError <link>GeDynDigFlash, ,$pwr_lang/man_geref.dat
! DigWarning <t>$hostobject.IndWarning <link>GeDynDigWarning, ,$pwr_lang/man_geref.dat
! PopupMenu <t>$hostobject <link>GeDynPopupMenu, ,$pwr_lang/man_geref.dat
!
! Default Cycle Slow
!
!*/
1
100 20
135 20
101 20
102 -269
103 -209
104 3.00792
136 3.00792
105 100
106 -40
107 -31
108 2
109 0
110 2
111 0
116 0
117 0
118 156
119 113
120 0
121 Claes context
122 0
126 0.5
127 0.5
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
134
22
2200 8
2201 9
2202 mcomp_epl_cn
2203 300
2205 0
2204
2206 0
2207
2208
2209 0
2210 0
2211 0
2212 0
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 67108864
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
2238 0
2239 1
2240 0
2241 0
2242 0
2217 0
2218 0
2219 1
2220
2230 0
2231 0
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 0
2227
2228 0
2229 0
2233 1
2234 1
2235 0
2243 0
2245 0
2244
1
100 33555457
105 0
101 3
106 0
102 33619964
103 0
12
1200 $hostobject.NodeId##UInt16
1201 %d
1202 1
1203 1
1204 0
99
31
3100 $hostobject.Status##Status
3101 44
99
50
5000 $hostobject
99
99
99
123
2
3
300 pwr_valuelong
301
2
19
1904
1900 26.6
1901 0
1902 0.7
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 26.6
701 0.7
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 1
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 -0.715333
2803 0
2804 1
2805 -0.771778
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
99
99
124
2
99
125
2
38
3804 O1
3800 2
3801 0
3802 2
3803 0
3808 0
3809 74
3810 74
3811 1
3813 15
3814 10
3816 0
3817 2
3815 0
3818 0
3819 0
3820 4
3821 0
3822 0
3807 0
3806
3805
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 2
701 2
99
99
3812
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
23
2304 O2
2300 1.33641
2301 1.03641
2302 1.67283
2303 1.37283
2305
9
900 4
901 303
904 0
902 A1
903
7
700 1.03641
701 1.67283
99
99
2306
5
500 2
501 1
504 1
505 0
502
7
700 1.03641
701 1.37283
99
503
7
700 1.33641
701 1.67283
99
99
2307
13
1300 1
1301 303
1306 0
1302 4
1305 1
1303
7
700 1
701 1
99
1304 0
1307 0
99
2308
28
2800 1
2801 0
2802 0.0364147
2803 0
2804 1
2805 0.672829
2806 0
99
2309 0
99
21
2104 O3
2100 1.3
2101 0.7
2102 0.3
2103 -0.3
2105
8
802 0
803 2
800 0
801 360
806 0
804
7
700 -0.3
701 -0.3
99
805
7
700 0.3
701 0.3
99
99
2106
12
1200 4
1201 4
1202
7
700 1
701 0
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
21
2104 O4
2100 0.3
2101 -0.3
2102 1.3
2103 0.7
2105
8
802 0
803 2
800 0
801 360
806 0
804
7
700 -0.3
701 -0.3
99
805
7
700 0.3
701 0.3
99
99
2106
12
1200 5
1201 2
1202
7
700 0
701 1
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
21
2104 O5
2100 1.3
2101 0.7
2102 2.3
2103 1.7
2105
8
802 0
803 2
800 0
801 360
806 0
804
7
700 -0.3
701 -0.3
99
805
7
700 0.3
701 0.3
99
99
2106
12
1200 6
1201 3
1202
7
700 1
701 2
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
21
2104 O6
2100 2.3
2101 1.7
2102 1.3
2103 0.7
2105
8
802 0
803 2
800 0
801 360
806 0
804
7
700 -0.3
701 -0.3
99
805
7
700 0.3
701 0.3
99
99
2106
12
1200 7
1201 1
1202
7
700 2
701 1
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
23
2304 O7
2300 1.33641
2301 1.03641
2302 0.872829
2303 0.572829
2305
9
900 4
901 303
904 0
902 A2
903
7
700 1.03641
701 0.872829
99
99
2306
5
500 2
501 1
504 1
505 0
502
7
700 1.03641
701 0.572829
99
503
7
700 1.33641
701 0.872829
99
99
2307
13
1300 2
1301 303
1306 0
1302 4
1305 1
1303
7
700 1
701 1
99
1304 0
1307 0
99
2308
28
2800 1
2801 0
2802 0.0364147
2803 0
2804 1
2805 -0.127171
2806 0
99
2309 0
99
20
2004 O8
2000 2
2001 0
2002 1
2003 1
2009 0
2010 0
2005
6
600 0
601 1
602
7
700 2
701 1
99
603
7
700 0
701 1
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
99
otherio/mmi/mcomp/src/mcomp_epl_cn.pwsg
0 → 100644
View file @
591af1b4
123
2
3
300 mcomp_epl_cn
301
2
38
3804 O1
3800 2
3801 0
3802 2
3803 0
3808 0
3809 74
3810 74
3811 1
3813 15
3814 10
3816 0
3817 2
3815 0
3818 0
3819 0
3820 4
3821 0
3822 0
3807 0
3806
3805
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 2
701 2
99
99
3812
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 303
1306 0
1302 4
1305 1
1303
7
700 1
701 1
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 0.0364147
2803 0
2804 1
2805 0.672829
2806 0
99
2901 0
99
12
1200 4
1201 4
1202
7
700 1
701 0
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
12
1200 5
1201 2
1202
7
700 0
701 1
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
12
1200 6
1201 3
1202
7
700 1
701 2
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
12
1200 7
1201 1
1202
7
700 2
701 1
99
1203
1204 0
1205
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 2
1301 303
1306 0
1302 4
1305 1
1303
7
700 1
701 1
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 0.0364147
2803 0
2804 1
2805 -0.127171
2806 0
99
2901 0
99
20
2004 O8
2000 2
2001 0
2002 1
2003 1
2009 0
2010 0
2005
6
600 0
601 1
602
7
700 2
701 1
99
603
7
700 0
701 1
99
99
2008
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
305 0
306
307
304 0
303
308 67108864
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 1
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
329
1
100 33555457
105 0
101 3
106 0
102 33619964
103 0
12
1200 $hostobject.NodeId##UInt16
1201 %d
1202 1
1203 1
1204 0
99
31
3100 $hostobject.Status##Status
3101 44
99
50
5000 $hostobject
99
99
99
99
99
otherio/mmi/mcomp/src/pwr_c_epl_cn.pwg
0 → 100644
View file @
591af1b4
0! DefaultWidth 813
0! DefaultHeight 202
199
!/**
! PressureSensor
! Group Components/BaseComponent
!
! <image> bcomp_pressuresensor_gs.gif
!
! <h1>Description
! Pressure sensor. Graphic symbol for basecomponent BasePressureSensor.
! Should be connected to an instance of BasePressureSensor, or a
! subclass to this class.
!
! <h1>Default dynamics
! HostObject <link>GeDynHostObject, ,$pwr_lang/man_geref.dat
!
! Dynamics for the symbol
! - flashing red when the high-high or low-low limits are exceeded.
! - colored yellow when the high or low limits are exceeded.
! - popupmenu with the methods of the connected object.
!
! DigFlash <t>$hostobject.IndError <link>GeDynDigFlash, ,$pwr_lang/man_geref.dat
! DigWarning <t>$hostobject.IndWarning <link>GeDynDigWarning, ,$pwr_lang/man_geref.dat
! PopupMenu <t>$hostobject <link>GeDynPopupMenu, ,$pwr_lang/man_geref.dat
!
! Default Cycle Slow
!
!*/
1
100 20
135 20
101 20
102 -70
103 -133
104 3.45455
136 3.45455
105 100
106 -12
107 -22
108 41.3068
109 0.399999
110 11.5262
111 2.25
116 0
117 0
118 187
119 113
120 0
121 Claes context
122 0
126 1
127 1
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
134
22
2200 0
2201 426
2202 pwr_c_epl_cn
2203 31
2205 0
2204
2206 0
2207
2208
2209 0.35
2210 1.9
2211 41
2212 12
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
2238 0
2239 0
2240 0
2241 0
2242 0
2217 0
2218 0
2219 0
2220
2230 0
2231 1
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 1000
2227
2228 0
2229 0
2233 1
2234 3
2235 1
2243 0
2248 0
2245 0
2244
99
123
2
3
300 pwr_valuelong
301
2
19
1904
1900 26.6
1901 0
1902 0.7
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 26.6
701 0.7
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 1
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 -0.715333
2803 0
2804 1
2805 -0.771778
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
3
300 pwr_indsquare
301
2
19
1904
1900 0.75
1901 0.15
1902 0.75
1903 0.1
1908 0
1909 293
1910 293
1911 1
1915 0
1913 15
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.15
701 0.1
99
503
7
700 0.75
701 0.75
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 4
330 0
321 0
331 0
309 29
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
99
124
2
99
125
2
30
3004 O382
3000 15.4004
3001 0.850396
3002 3.3
3003 2.25
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 6
901 304
904 0
902 Powerlink Controlled Node
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 0.6
2806 0
99
99
27
2703 32
2704 51
2722 10000
2705 51
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O21
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.0948
1007 6.75199
1008 4.57966
1009 3.62511
1013 40.0948
1014 6.75199
1015 4.57966
1016 3.62511
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.69297
701 2.21866
99
1010 $object.Description##String80
1011 %s
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.25349
2801 0
2802 6.75199
2803 0
2804 1.36364
2805 3.62511
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Description##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O405
3000 5.7004
3001 0.850396
3002 5.79802
3003 4.94802
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 0
902 Specification
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 3.14802
2806 0
99
99
27
2703 32
2704 51
2722 10000
2705 51
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O406
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.0948
1007 6.75199
1008 5.87966
1009 4.92511
1013 40.0948
1014 6.75199
1015 5.87966
1016 4.92511
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.69297
701 2.21866
99
1010 $object.Description##String80
1011 %s
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.25349
2801 0
2802 6.75199
2803 0
2804 1.36364
2805 4.92511
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Specification##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O408
3000 5.2504
3001 0.850396
3002 4.45642
3003 3.60642
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 1.80642
2806 0
99
99
19
1904 O414
1900 41.3068
1901 0.399999
1902 11.5262
1903 6.45572
1908 0
1909 31
1910 31
1911 0
1915 1
1913 1
1916 2
1914 1
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 0
502
7
700 0.65
701 6
99
503
7
700 40.65
701 12.6
99
99
1912
28
2800 1.02267
2801 0
2802 -0.264736
2803 0
2804 0.768258
2805 1.84617
2806 0
99
99
27
2703 10000
2704 10000
2722 10000
2705 10000
2723 10000
2706 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_indsquare
1002 O415
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 6.8994
1007 6.2994
1008 7.72493
1009 7.07493
1013 6.8994
1014 6.2994
1015 7.72493
1016 7.07493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 5.95
701 8.95
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1
2801 0
2802 6.1494
2803 0
2804 1
2805 6.97493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $object.Status##Status
3101 28
99
99
99
30
3004 O416
3000 2.99106
3001 0.941059
3002 7.63545
3003 7.03545
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Status
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 5.03545
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O417
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 7.8271
1009 6.97493
1013 40.8096
1014 7.60028
1015 7.8271
1016 6.97493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 6.97493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Status##Status
1201 %m
1202 1
1203 1
1204 0
99
99
99
30
3004 O418
3000 3.34106
3001 0.941059
3002 9.74417
3003 9.14417
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Node Id
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 7.14417
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O419
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6954
1007 7.60028
1008 9.96375
1009 9.11158
1013 13.6954
1014 7.60028
1015 9.96375
1016 9.11158
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.229139
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 9.11158
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NodeId##UInt16
1201 %d
1202 1
1203 1
1204 0
99
99
99
30
3004 O422
3000 5.74106
3001 0.941059
3002 8.68836
3003 8.08836
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Powerlink state
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 6.08836
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O423
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 8.88932
1009 8.03715
1013 40.8096
1014 7.60028
1015 8.88932
1016 8.03715
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 8.03715
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NmtState##Enum
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O424
3000 4.24106
3001 0.941059
3002 10.7971
3003 10.1971
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Ip address
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 8.19707
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O425
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6433
1007 7.60028
1008 11.026
1009 10.1738
1013 13.6433
1014 7.60028
1015 11.026
1016 10.1738
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.227181
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 10.1738
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.IpAddress##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
99
99
otherio/mmi/mcomp/src/pwr_c_epl_cnserver.pwg
0 → 100644
View file @
591af1b4
0! DefaultWidth 833
0! DefaultHeight 190
199
!/**
! PressureSensor
! Group Components/BaseComponent
!
! <image> bcomp_pressuresensor_gs.gif
!
! <h1>Description
! Pressure sensor. Graphic symbol for basecomponent BasePressureSensor.
! Should be connected to an instance of BasePressureSensor, or a
! subclass to this class.
!
! <h1>Default dynamics
! HostObject <link>GeDynHostObject, ,$pwr_lang/man_geref.dat
!
! Dynamics for the symbol
! - flashing red when the high-high or low-low limits are exceeded.
! - colored yellow when the high or low limits are exceeded.
! - popupmenu with the methods of the connected object.
!
! DigFlash <t>$hostobject.IndError <link>GeDynDigFlash, ,$pwr_lang/man_geref.dat
! DigWarning <t>$hostobject.IndWarning <link>GeDynDigWarning, ,$pwr_lang/man_geref.dat
! PopupMenu <t>$hostobject <link>GeDynPopupMenu, ,$pwr_lang/man_geref.dat
!
! Default Cycle Slow
!
!*/
1
100 20
135 20
101 20
102 -63
103 -109
104 3.7377
136 3.7377
105 100
106 -11
107 -20
108 41.3068
109 0.399999
110 11.0593
111 2.25
116 0
117 0
118 126
119 113
120 1
121 Claes context
122 0
126 1
127 1
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
134
22
2200 0
2201 427
2202 pwr_c_epl_cnserver
2203 31
2205 0
2204
2206 0
2207
2208
2209 0.35
2210 1.9
2211 42
2212 11.4
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
2238 0
2239 0
2240 0
2241 0
2242 0
2217 0
2218 0
2219 0
2220
2230 0
2231 1
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 1000
2227
2228 0
2229 0
2233 1
2234 3
2235 1
2243 0
2248 0
2245 0
2244
99
123
2
3
300 pwr_valuelong
301
2
19
1904
1900 26.6
1901 0
1902 0.7
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 26.6
701 0.7
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 1
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 -0.715333
2803 0
2804 1
2805 -0.771778
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
3
300 pwr_indsquare
301
2
19
1904
1900 0.75
1901 0.15
1902 0.75
1903 0.1
1908 0
1909 293
1910 293
1911 1
1915 0
1913 15
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.15
701 0.1
99
503
7
700 0.75
701 0.75
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 4
330 0
321 0
331 0
309 29
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
99
124
2
99
125
2
19
1904 O421
1900 41.3068
1901 0.399999
1902 11.0593
1903 5.00572
1908 0
1909 31
1910 31
1911 0
1915 1
1913 1
1916 2
1914 1
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 0
502
7
700 0.65
701 6
99
503
7
700 40.65
701 12.6
99
99
1912
28
2800 1.02267
2801 0
2802 -0.264736
2803 0
2804 0.917206
2805 -0.497516
2806 0
99
99
30
3004 O382
3000 19.2504
3001 0.850396
3002 3.3
3003 2.25
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 6
901 304
904 0
902 Powerlink Controlled Node Server
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 0.6
2806 0
99
99
27
2703 32
2704 51
2722 10000
2705 51
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O21
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8448
1007 7.50199
1008 4.57966
1009 3.62511
1013 40.8448
1014 7.50199
1015 4.57966
1016 3.62511
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.69297
701 2.21866
99
1010 $object.Description##String80
1011 %s
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.25349
2801 0
2802 7.50199
2803 0
2804 1.36364
2805 3.62511
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Description##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
27
2703 10000
2704 10000
2722 10000
2705 10000
2723 10000
2706 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_indsquare
1002 O36
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 6.8994
1007 6.2994
1008 6.27493
1009 5.62493
1013 6.8994
1014 6.2994
1015 6.27493
1016 5.62493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 5.95
701 8.95
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1
2801 0
2802 6.1494
2803 0
2804 1
2805 5.52493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $object.Status##Status
3101 28
99
99
99
30
3004 O384
3000 2.99106
3001 0.941059
3002 6.18545
3003 5.58545
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Status
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 3.58545
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O37
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 6.3771
1009 5.52493
1013 40.8096
1014 7.60028
1015 6.3771
1016 5.52493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 5.52493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Status##Status
1201 %m
1202 1
1203 1
1204 0
99
99
99
30
3004 O408
3000 5.2504
3001 0.850396
3002 4.45642
3003 3.60642
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 1.80642
2806 0
99
99
30
3004 O411
3000 3.34106
3001 0.941059
3002 9.34417
3003 8.74417
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Node Id
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 6.74417
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O412
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6954
1007 7.60028
1008 9.56376
1009 8.71158
1013 13.6954
1014 7.60028
1015 9.56376
1016 8.71158
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.229139
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 8.71158
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NodeId##UInt16
1201 %d
1202 1
1203 1
1204 0
99
99
99
30
3004 O417
3000 2.99106
3001 0.941059
3002 8.29126
3003 7.69126
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Device
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 5.69126
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O418
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.634
1007 7.60028
1008 8.50154
1009 7.64936
1013 13.634
1014 7.60028
1015 8.50154
1016 7.64936
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.226832
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 7.64936
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Device##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O423
3000 5.74106
3001 0.941059
3002 7.23836
3003 6.63836
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Powerlink state
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 4.63836
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O424
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 7.43932
1009 6.58715
1013 40.8096
1014 7.60028
1015 7.43932
1016 6.58715
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 6.58715
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NmtState##Enum
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O425
3000 4.24106
3001 0.941059
3002 10.3971
3003 9.79707
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Ip address
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 7.79707
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O426
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6433
1007 7.60028
1008 10.626
1009 9.7738
1013 13.6433
1014 7.60028
1015 10.626
1016 9.7738
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.227181
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 9.7738
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.IpAddress##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
99
99
otherio/mmi/mcomp/src/pwr_c_epl_mn.pwg
0 → 100644
View file @
591af1b4
0! DefaultWidth 833
0! DefaultHeight 259
199
!/**
! PressureSensor
! Group Components/BaseComponent
!
! <image> bcomp_pressuresensor_gs.gif
!
! <h1>Description
! Pressure sensor. Graphic symbol for basecomponent BasePressureSensor.
! Should be connected to an instance of BasePressureSensor, or a
! subclass to this class.
!
! <h1>Default dynamics
! HostObject <link>GeDynHostObject, ,$pwr_lang/man_geref.dat
!
! Dynamics for the symbol
! - flashing red when the high-high or low-low limits are exceeded.
! - colored yellow when the high or low limits are exceeded.
! - popupmenu with the methods of the connected object.
!
! DigFlash <t>$hostobject.IndError <link>GeDynDigFlash, ,$pwr_lang/man_geref.dat
! DigWarning <t>$hostobject.IndWarning <link>GeDynDigWarning, ,$pwr_lang/man_geref.dat
! PopupMenu <t>$hostobject <link>GeDynPopupMenu, ,$pwr_lang/man_geref.dat
!
! Default Cycle Slow
!
!*/
1
100 20
135 20
101 20
102 -92
103 -127
104 3.45455
136 3.45455
105 100
106 -15
107 -21
108 41.3068
109 0.399999
110 14.0286
111 2.25
116 0
117 0
118 186
119 113
120 1
121 Claes context
122 0
126 1
127 1
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
134
22
2200 0
2201 424
2202 pwr_c_epl_mn
2203 31
2205 0
2204
2206 0
2207
2208
2209 0.35
2210 1.9
2211 42
2212 14.85
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
2238 0
2239 0
2240 0
2241 0
2242 0
2217 0
2218 0
2219 0
2220
2230 0
2231 1
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 1000
2227
2228 0
2229 0
2233 1
2234 3
2235 1
2243 0
2248 0
2245 0
2244
99
123
2
3
300 pwr_valuelong
301
2
19
1904
1900 26.6
1901 0
1902 0.7
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 5
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 26.6
701 0.7
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 1
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 -0.715333
2803 0
2804 1
2805 -0.771778
2806 0
99
2901 2
99
99
302 0
304 0
303
305 0
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
3
300 pwr_indsquare
301
2
19
1904
1900 0.75
1901 0.15
1902 0.75
1903 0.1
1908 0
1909 293
1910 293
1911 1
1915 0
1913 15
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.15
701 0.1
99
503
7
700 0.75
701 0.75
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 4
330 0
321 0
331 0
309 29
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
99
99
124
2
99
125
2
19
1904 O421
1900 41.3068
1901 0.399999
1902 14.0286
1903 6.55569
1908 0
1909 31
1910 31
1911 0
1915 1
1913 0.7
1916 2
1914 1
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 0
502
7
700 0.65
701 6
99
503
7
700 40.65
701 12.6
99
99
1912
28
2800 1.02267
2801 0
2802 -0.264736
2803 0
2804 1.13226
2805 -0.237861
2806 0
99
99
30
3004 O382
3000 15.1504
3001 0.850396
3002 3.3
3003 2.25
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 6
901 304
904 0
902 Powerlink Managing Node
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 0.6
2806 0
99
99
27
2703 32
2704 51
2722 10000
2705 51
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O21
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8448
1007 7.50199
1008 4.57966
1009 3.62511
1013 40.8448
1014 7.50199
1015 4.57966
1016 3.62511
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.69297
701 2.21866
99
1010 $object.Description##String80
1011 %s
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.25349
2801 0
2802 7.50199
2803 0
2804 1.36364
2805 3.62511
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Description##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
27
2703 10000
2704 10000
2722 10000
2705 10000
2723 10000
2706 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_indsquare
1002 O36
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 6.8994
1007 6.2994
1008 7.82493
1009 7.17493
1013 6.8994
1014 6.2994
1015 7.82493
1016 7.17493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 5.95
701 8.95
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1
2801 0
2802 6.1494
2803 0
2804 1
2805 7.07493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $object.Status##Status
3101 28
99
99
99
30
3004 O384
3000 4.44106
3001 0.941059
3002 7.73545
3003 7.13545
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Node state
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 5.13545
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O37
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 7.9271
1009 7.07493
1013 40.8096
1014 7.60028
1015 7.9271
1016 7.07493
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 7.07493
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NmtState##Enum
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O405
3000 5.7004
3001 0.850396
3002 5.79802
3003 4.94802
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 0
902 Specification
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 3.14802
2806 0
99
99
27
2703 32
2704 51
2722 10000
2705 51
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O406
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8448
1007 7.50199
1008 5.87966
1009 4.92511
1013 40.8448
1014 7.50199
1015 5.87966
1016 4.92511
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.69297
701 2.21866
99
1010 $object.Description##String80
1011 %s
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.25349
2801 0
2802 7.50199
2803 0
2804 1.36364
2805 4.92511
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Specification##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O408
3000 5.2504
3001 0.850396
3002 4.45642
3003 3.60642
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 4
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.249604
2803 0
2804 1
2805 1.80642
2806 0
99
99
30
3004 O411
3000 3.34106
3001 0.941059
3002 11.0589
3003 10.4589
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Node Id
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 8.45891
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O412
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6405
1007 7.60028
1008 11.2504
1009 10.3982
1013 13.6405
1014 7.60028
1015 11.2504
1016 10.3982
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.227075
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 10.3982
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NodeId##UInt16
1201 %d
1202 1
1203 1
1204 0
99
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O415
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 40.8096
1007 7.60028
1008 9.03488
1009 8.18271
1013 40.8096
1014 7.60028
1015 9.03488
1016 8.18271
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.24847
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 8.18271
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.CDCfile##String256
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O416
3000 3.29106
3001 0.941059
3002 8.84327
3003 8.24327
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 CDC file
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 6.24327
2806 0
99
99
30
3004 O417
3000 2.99106
3001 0.941059
3002 9.95109
3003 9.35109
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Device
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 7.35109
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O418
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.7214
1007 7.60028
1008 10.1426
1009 9.29044
1013 13.7214
1014 7.60028
1015 10.1426
1016 9.29044
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.230117
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 9.29044
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.Device##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O419
3000 6.34106
3001 0.941059
3002 13.2746
3003 12.6746
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Number of slaves
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 10.6746
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O420
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6405
1007 7.60028
1008 13.466
1009 12.6138
1013 13.6405
1014 7.60028
1015 13.466
1016 12.6138
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.227075
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 12.6138
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.NumberOfSlaves##UInt16
1201 %d
1202 1
1203 1
1204 0
99
99
99
30
3004 O422
3000 4.24106
3001 0.941059
3002 12.1667
3003 11.5667
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Ip address
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.158941
2803 0
2804 1
2805 9.56673
2806 0
99
99
27
2703 32
2704 10000
2722 10000
2705 10000
2723 10000
2706 32
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_valuelong
1002 O423
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.6433
1007 7.60028
1008 12.3582
1009 11.506
1013 13.6433
1014 7.60028
1015 12.3582
1016 11.506
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 0.227181
2801 0
2802 7.60028
2803 0
2804 1.21739
2805 11.506
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
1200 $object.IpAddress##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
99
99
otherio/wbl/mcomp/src/otherio.wb_load
View file @
591af1b4
Volume OtherIO $ClassVolume 0.0.250.10
Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X
585
"
Attr NextOix = "_X
609
"
Attr NextCix = "_X45"
Attr NextTix[0] = "_X17"
EndBody
...
...
@@ -8796,8 +8796,9 @@ Volume OtherIO $ClassVolume 0.0.250.10
EndObject
EndObject
Object Template Epl_CN 2157936640 01-JAN-1970 01:00:00.00
Body RtBody
04-JUL-2013 08:54:39.24
Body RtBody
25-JUL-2013 15:23:16.85
Attr Process = 128
Attr Timeout = 2
Attr ErrorSoftLimit = 25
Attr ErrorHardLimit = 50
EndBody
...
...
@@ -8866,7 +8867,7 @@ Volume OtherIO $ClassVolume 0.0.250.10
Object RtBody $ObjBodyDef 1 01-JUL-2013 17:26:15.35
Body SysBody 04-JUL-2013 08:13:20.05
Attr StructName = "Epl_MN"
Attr NextAix = "_X5
1
"
Attr NextAix = "_X5
2
"
EndBody
!/**
! Used to add a short description of the master
...
...
@@ -8878,6 +8879,13 @@ Volume OtherIO $ClassVolume 0.0.250.10
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
Object Specification $Attribute 51 18-JUL-2013 10:41:25.41
Body SysBody 18-JUL-2013 10:41:25.41
Attr PgmName = "Specification"
Attr Size = 80
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! This attribute should contain a path to a cdc-file.
! Example: /home/pwrp/mnobd.cdc
...
...
@@ -9144,12 +9152,14 @@ Volume OtherIO $ClassVolume 0.0.250.10
EndObject
EndObject
Object Template Epl_MN 2158198784 01-JAN-1970 01:00:00.00
Body RtBody
05-JUL-2013 12:22:16.05
Body RtBody
25-JUL-2013 15:23:45.03
Attr CDCfile = "$pwrp_exe/mnobd.cdc"
Attr Device = "eth0"
Attr NodeId = 240
Attr Process = 128
Attr Priority = 20
Attr StartupTimeout = 30
Attr Timeout = 2
Attr ErrorSoftLimit = 25
Attr ErrorHardLimit = 50
EndBody
...
...
@@ -9298,6 +9308,94 @@ Volume OtherIO $ClassVolume 0.0.250.10
EndBody
EndObject
EndObject
Object ConfiguratorPosnn $Menu 586 17-JUL-2013 16:46:27.38
Object Pointed $Menu 587 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 588 17-JUL-2013 16:46:44.93
Body SysBody 17-JUL-2013 16:47:07.86
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object ConfiguratorPoscn $Menu 589 17-JUL-2013 16:46:27.38
Object Pointed $Menu 590 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 591 17-JUL-2013 16:47:26.79
Body SysBody 17-JUL-2013 16:47:34.61
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object ConfiguratorPosos $Menu 592 17-JUL-2013 16:46:27.38
Object Pointed $Menu 593 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 594 17-JUL-2013 16:47:43.47
Body SysBody 17-JUL-2013 16:48:02.26
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object ConfiguratorPoson $Menu 595 17-JUL-2013 16:46:27.38
Object Pointed $Menu 596 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 597 17-JUL-2013 16:48:17.47
Body SysBody 17-JUL-2013 16:48:29.42
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object NavigatorPosnn $Menu 598 17-JUL-2013 16:46:27.38
Object Pointed $Menu 599 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 600 17-JUL-2013 16:48:39.94
Body SysBody 17-JUL-2013 16:48:45.35
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object NavigatorPoscn $Menu 601 17-JUL-2013 16:46:27.38
Object Pointed $Menu 602 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 603 17-JUL-2013 16:48:59.97
Body SysBody 17-JUL-2013 16:49:09.08
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object NavigatorPosos $Menu 604 17-JUL-2013 16:46:27.38
Object Pointed $Menu 605 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 606 17-JUL-2013 16:49:15.98
Body SysBody 17-JUL-2013 16:49:24.44
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object NavigatorPoson $Menu 607 17-JUL-2013 16:46:27.38
Object Pointed $Menu 608 17-JUL-2013 16:46:27.38
Object GenerateXddFile $MenuButton 609 17-JUL-2013 16:49:30.45
Body SysBody 17-JUL-2013 16:49:37.26
Attr ButtonName = "GenerateXddFile"
Attr MethodName = "Epl_CNServer-GenerateXddFile"
Attr FilterName = "Epl_CNServer-GenerateXddFileFilter"
EndBody
EndObject
EndObject
EndObject
Object IoMethods $RtMethod 574 08-JUL-2013 10:17:49.38
Object IoRackInit $Method 575 08-JUL-2013 15:30:22.45
Body SysBody 08-JUL-2013 15:29:51.66
...
...
@@ -9321,10 +9419,12 @@ Volume OtherIO $ClassVolume 0.0.250.10
EndObject
EndObject
Object Template Epl_CNServer 2158985216 01-JAN-1970 01:00:00.00
Body RtBody
08-JUL-2013 10:37:34.48
Body RtBody
25-JUL-2013 15:24:48.33
Attr Device = "eth0"
Attr Process = 128
Attr Priority = 20
Attr StartupTimeout = 30
Attr Timeout = 2
Attr ErrorSoftLimit = 25
Attr ErrorHardLimit = 50
EndBody
...
...
src/msg/rt/src/rt_iom_msg.msg
View file @
591af1b4
...
...
@@ -51,6 +51,10 @@ spi_readerror <SPI read error> /error
spi_writeerror <SPI write error> /error
epl_oper <EPL Operational> /succ
epl_nooper <EPL Not in operational state> /error
epl_off <EPL Off> /error
epl_basicethernet <EPL Basic ethernet state> /error
epl_preoper1 <EPL Pre operational 1> /error
epl_preoper2 <EPL Pre operational 2> /error
.end
wb/exp/wb/src/pwr_wb_palette.cnf
View file @
591af1b4
...
...
@@ -145,6 +145,10 @@ palette NavigatorPalette
class ABB_ACS800MotorAggr
class ABB_ACS800PumpAggr
class ABB_ACS800_1
class ABB_ACS880EplFanAggr
class ABB_ACS880EplMotorAggr
class ABB_ACS880EplPumpAggr
class ABB_ACS880_Epl_1
class ABB_ACS880FanAggr
class ABB_ACS880MotorAggr
class ABB_ACS880PumpAggr
...
...
@@ -330,6 +334,15 @@ palette NavigatorPalette
class Epl_MN
class Epl_CN
class EPl_Module
menu Modules
{
class ABB_ACS880_Epl
class BR_Ai4_EplModule
class BR_Ao4_EplModule
class BR_Di4_EplModule
class BR_Do4_EplModule
class BR_PowerSupply_EplModule
}
menu Server
{
class Epl_CNServer
...
...
xtt/lib/ge/src/pwr_ge_setup.dat
View file @
591af1b4
...
...
@@ -605,6 +605,10 @@ menu Components
subgraph Pb_DP_Slave pwr_exe:mcomp_pb_dp_slave.pwsg 5
subgraph PnDevice pwr_exe:mcomp_pndevice.pwsg 5
}
menu Powerlink
{
subgraph Epl_CN pwr_exe:mcomp_epl_cn.pwsg 5
}
}
localsubgraphs Ssab ssab_exe:*.pwsg
menu Local
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment