Commit de8ab792 authored by Claes Sjofors's avatar Claes Sjofors

Powerlink implemented

parent fa6c56ad
include $(pwre_dir_symbols)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_kroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
ifndef link_rule_mk
link_rule_mk := 1
link = $(ldxx) $(explinkflags) $(domap) -o $(export_exe) \
$(export_obj) $(pwr_eobj)/rt_io_user.o \
$(pwre_conf_libdir) $(pwre_conf_libpwrrt) $(pwre_conf_lib) \
-lpwr_usbio_dummy -lpwr_usb_dummy -lpwr_cifx_dummy -lpwr_nodave_dummy \
$(pwre_conf_libpwrprofibus) $(pwre_conf_libpwrpowerlink) -lpcap
endif
/*
* 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.
**/
#include "pwr.h"
#include "rt_io_msg.h"
#include "rt_pwr_msg.h"
#include "rt_gdh.h"
#include "rt_io_base.h"
#include "rt_errh.h"
#include "rt_aproc.h"
#include "pwr_basecomponentclasses.h"
#include "pwr_otherioclasses.h"
pwr_tStatus io_get_plhandler_object (
pwr_sClass_EplHandler **o,
pwr_tObjid *roid
)
{
pwr_tStatus sts;
pwr_tObjid oid;
// Get EplHandler object
sts = gdh_GetClassList(pwr_cClass_EplHandler, &oid);
if (EVEN(sts)) return sts;
sts = gdh_ObjidToPointer( oid, (void *) o);
if (EVEN(sts)) return sts;
if (roid != NULL)
*roid = oid;
return IO__SUCCESS;
}
int main()
{
pwr_tStatus sts;
io_tCtx io_ctx;
float ctime = 1;
pwr_sClass_EplHandler *plhp;
pwr_tOid oid;
struct timespec tim1, tim2;
// Make connection to error handler
errh_Init("pwr_powerlink", errh_eAnix_powerlink);
errh_SetStatus( PWR__SRVSTARTUP);
// Make connection to realtime database
sts = gdh_Init("rt_powerlink");
if (EVEN(sts)) {
errh_Fatal("rt_powerlink aborted, gdh_Init failed\n%m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(sts);
}
// Get Powerlink handler object
sts = io_get_plhandler_object(&plhp, &oid);
if (EVEN(sts)) {
errh_SetStatus( 0);
errh_Info("rt_powerlink terminated, no EplHandler object found");
exit(sts);
}
// Create context and call init functions of all agent,
// rack and cardobjects
sts = io_init(io_mProcess_Powerlink, pwr_cNObjid, &io_ctx, 1, ctime);
if ( EVEN(sts)) {
errh_SetStatus( PWR__SRVTERM);
errh_Fatal("rt_powerlink aborted, io_init() failed\n%m", sts);
exit(sts);
}
tim1.tv_sec = 0;
tim1.tv_nsec = (plhp->CycleTime)*1000000000L;
aproc_TimeStamp( plhp->CycleTime, 5.0);
errh_SetStatus( PWR__SRUN);
aproc_RegisterObject( oid);
// Call IoAgentRead() IoAgentWrite() IoCardRead() IoCardWrite()
// IoModuleRead() IoModuleWrite() forever
for (;;) {
sts = io_read(io_ctx);
sts = io_write(io_ctx);
nanosleep(&tim1, &tim2);
aproc_TimeStamp( plhp->CycleTime, 5.0);
}
}
/*
Dummy for libpowerlink.a
*/
#include <stdint.h>
typedef void *tEplKernel;
typedef int tEplObdSize;
typedef void *tEplApiInitParam;
typedef void *tEplNmtEvent;
typedef void *tEplEventSource;
typedef void *tEplApiProcessImageCopyJob;
typedef void *EplObdInitParam;
#define EPLDLLEXPORT
#define PUBLIC
#define MEM
#define WORD int
#define BOOL int
tEplKernel PUBLIC EplTgtInit(void) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiInitialize(tEplApiInitParam* pInitParam_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiSetCdcFilename(char* pszCdcFilename_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiProcessImageAlloc(
unsigned int uiSizeProcessImageIn_p,
unsigned int uiSizeProcessImageOut_p,
unsigned int uiQueueEntriesLo_p,
unsigned int uiQueueEntriesHi_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiExecNmtCommand(tEplNmtEvent NmtEvent_p) {return 0;}
EPLDLLEXPORT char * PUBLIC EplGetNmtEventStr(tEplNmtEvent nmtEvent_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiWriteLocalObject(
unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pSrcData_p,
unsigned int uiSize_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiReadLocalObject(
unsigned int uiIndex_p,
unsigned int uiSubindex_p,
void* pDstData_p,
unsigned int* puiSize_p) {return 0;}
EPLDLLEXPORT char * PUBLIC EplGetEplKernelStr( tEplKernel EplKernel_p ) {return 0;}
EPLDLLEXPORT char * PUBLIC EplGetEventSourceStr(tEplEventSource eventSrc_p) {return 0;}
EPLDLLEXPORT const char * PUBLIC EplGetEmergErrCodeStr( WORD EmergErrCode_p ) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiProcessImageFree(void) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiShutdown(void) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiProcessImageLinkObject(
unsigned int uiObjIndex_p,
unsigned int uiFirstSubindex_p,
unsigned int uiOffsetPI_p,
BOOL fOutputPI_p,
tEplObdSize EntrySize_p,
unsigned int* puiVarEntries_p) {return 0;}
EPLDLLEXPORT tEplKernel PUBLIC EplApiProcessImageExchange(
tEplApiProcessImageCopyJob* pCopyJob_p) {return 0;}
tEplKernel PUBLIC EplObdInitRam (EplObdInitParam MEM * pInitParam_p) {return 0;}
include $(pwre_dir_symbols)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_kroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
#if defined PWRE_CONF_EPL
#include "Epl.h"
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
#define EPLAPI_PI_SUBINDEX_COUNT 252
//---------------------------------------------------------------------------
// local types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// modul globale vars
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local function prototypes
//---------------------------------------------------------------------------
/***************************************************************************/
/* */
/* */
/* C L A S S EplApi */
/* */
/* */
/***************************************************************************/
//
// Description:
//
//
/***************************************************************************/
//=========================================================================//
// //
// P R I V A T E D E F I N I T I O N S //
// //
//=========================================================================//
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local types
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local vars
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// local function prototypes
//---------------------------------------------------------------------------
static tEplKernel EplApiProcessImageLinkRange(
unsigned int uiObjIndexStart_p,
unsigned int uiObjIndexEnd_p,
unsigned int uiOffsetPI_p,
BOOL fOutputPI_p,
tEplObdSize EntrySize_p,
unsigned int uiSubindexCountPerIndex_p);
//=========================================================================//
// //
// P U B L I C F U N C T I O N S //
// //
//=========================================================================//
//---------------------------------------------------------------------------
//
// Function: EplApiProcessImageSetup()
//
// Description: sets up static process image
//
// Parameters: (none)
//
// Returns: tEplKernel = error code
//
//
// State:
//
//---------------------------------------------------------------------------
tEplKernel PUBLIC EplApiProcessImageSetup(void)
{
tEplKernel Ret = kEplSuccessful;
Ret = EplApiProcessImageLinkRange(0xA000, 0xA00F, 0, FALSE, 1, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA040, 0xA04F, 0, FALSE, 1, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA0C0, 0xA0C7, 0, FALSE, 2, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA100, 0xA107, 0, FALSE, 2, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA1C0, 0xA1C3, 0, FALSE, 4, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA200, 0xA203, 0, FALSE, 4, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA480, 0xA48F, 0, TRUE, 1, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA4C0, 0xA4CF, 0, TRUE, 1, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA540, 0xA547, 0, TRUE, 2, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA580, 0xA587, 0, TRUE, 2, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA640, 0xA643, 0, TRUE, 4, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Ret = EplApiProcessImageLinkRange(0xA680, 0xA683, 0, TRUE, 4, EPLAPI_PI_SUBINDEX_COUNT);
if (Ret != kEplSuccessful)
{
goto Exit;
}
Exit:
return Ret;
}
//=========================================================================//
// //
// P R I V A T E F U N C T I O N S //
// //
//=========================================================================//
//---------------------------------------------------------------------------
//
// Function: EplApiProcessImageSetup()
//
// Description: sets up static process image
//
// Parameters: (none)
//
// Returns: tEplKernel = error code
//
//
// State:
//
//---------------------------------------------------------------------------
static tEplKernel EplApiProcessImageLinkRange(
unsigned int uiObjIndexStart_p,
unsigned int uiObjIndexEnd_p,
unsigned int uiOffsetPI_p,
BOOL fOutputPI_p,
tEplObdSize EntrySize_p,
unsigned int uiSubindexCountPerIndex_p)
{
tEplKernel Ret = kEplSuccessful;
unsigned int uiVarEntries;
for (; uiObjIndexStart_p <= uiObjIndexEnd_p;
uiObjIndexStart_p++, uiOffsetPI_p += EntrySize_p * uiSubindexCountPerIndex_p)
{
uiVarEntries = uiSubindexCountPerIndex_p;
Ret = EplApiProcessImageLinkObject(
uiObjIndexStart_p,
1,
uiOffsetPI_p,
fOutputPI_p,
EntrySize_p,
&uiVarEntries);
if (((Ret == kEplSuccessful) && (uiVarEntries < uiSubindexCountPerIndex_p))
|| (Ret == kEplApiPISizeExceeded))
{
Ret = kEplSuccessful;
break;
}
if (Ret != kEplSuccessful)
{
TRACE("EplApiProcessImageLinkObject returned: %xh for index %xh\n", Ret, uiObjIndexStart_p);
goto Exit;
}
}
Exit:
return Ret;
}
#endif
/*
* 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.
**/
#ifndef rt_io_m_epl_h
#define rt_io_m_epl_h
typedef struct {
int input_area_size;
int output_area_size;
void *input_area;
void *output_area;
void *tmp_area;
struct timespec tpe, tps;
short inputResetEnabled;
} io_sLocalEpl_MN;
typedef struct {
int byte_ordering;
int float_representation;
struct timespec tpe, tps;
} io_sLocalEpl_CN;
#endif
/*
* 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.
**/
/****************************************************************************
(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 "rt_io_base.h"
#include "rt_io_agent_init.h"
#include "rt_io_agent_close.h"
#include "rt_io_msg.h"
#include "rt_iom_msg.h"
#include "pwr_otherioclasses.h"
#include "rt_io_m_epl.h"
#include "rt_io_bus.h"
#if defined PWRE_CONF_EPL
#include "Epl.h"
#include <errno.h>
#include <math.h>
#define pl_Align(offs, align) ((offs + (align - 1)) & ~(align - 1))
/***************************************************************************/
/* */
/* */
/* G L O B A L D E F I N I T I O N S */
/* */
/* */
/***************************************************************************/
//---------------------------------------------------------------------------
// const defines
//---------------------------------------------------------------------------
#define IP_ADDR 0xc0a86401 // 192.168.100.1
#define SUBNET_MASK 0xFFFFFF00 // 255.255.255.0 "
#define MAIN_THREAD_PRIORITY 20
//---------------------------------------------------------------------------
// module global vars
//---------------------------------------------------------------------------
CONST BYTE abMacAddr[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
static unsigned int uiCycleLen_g = 0;
static unsigned int uiCurCycleLen_g = 0;
// process image stuff
static void *AppProcessImageIn_g;
static void *AppProcessImageOut_g;
static tEplApiProcessImageCopyJob AppProcessImageCopyJob_g;
/*----------------------------------------------------------------------------*/
//---------------------------------------------------------------------------
// local function prototypes
//---------------------------------------------------------------------------
// This function is the entry point for your object dictionary. It is defined
// in OBJDICT.C by define EPL_OBD_INIT_RAM_NAME. Use this function name to define
// this function prototype here. If you want to use more than one Epl
// instances then the function name of each object dictionary has to differ.
tEplKernel PUBLIC EplObdInitRam (tEplObdInitParam MEM* pInitParam_p);
tEplKernel PUBLIC AppCbEvent(
tEplApiEventType EventType_p, // IN: event type (enum)
tEplApiEventArg* pEventArg_p, // IN: event argument (union)
io_sAgent* pUserArg_p);
tEplKernel PUBLIC AppCbSync(void);
pwr_tStatus io_bus_card_init_pl( io_tCtx ctx,
io_sCard *cp,
unsigned int *input_area_offset,
unsigned int *input_area_chansize,
unsigned int *output_area_offset,
unsigned int *output_area_chansize,
pwr_tByteOrderingEnum byte_order
);
/*----------------------------------------------------------------------------*\
Init method for the Powerlink module
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoAgentInit (io_tCtx ctx, io_sAgent *ap) {
io_sLocalEpl_MN *local;
int sts;
pwr_sClass_Epl_MN *op = (pwr_sClass_Epl_MN *)ap->op;
local = (io_sLocalEpl_MN *) calloc( 1, sizeof(io_sLocalEpl_MN));
ap->Local = local;
local->inputResetEnabled = 0;
op->NumberOfSlaves = 0;
static tEplApiInitParam EplApiInitParam;
tEplKernel EplRet = kEplSuccessful;
char* pszCdcFilename_g = op->CDCfile;
char* sHostname = malloc(1023);
gethostname(sHostname, 1023);
if( op->StallAction == pwr_eStallActionEnum_ResetInputs)
local->inputResetEnabled = 1;
// Init the I/O area
unsigned int input_area_offset = 0;
unsigned int input_area_chansize = 0;
unsigned int output_area_offset = 0;
unsigned int output_area_chansize = 0;
io_sRack *rp;
io_sCard *cp;
pwr_tCid cid;
for ( rp = ap->racklist; rp; rp = rp->next) {
rp->Local = calloc( 1, sizeof(io_sLocalEpl_CN));
rp->MethodDisabled = 1;
op->NumberOfSlaves++;
if( ((pwr_sClass_Epl_CN *)rp->op)->StallAction == pwr_eStallActionEnum_ResetInputs)
local->inputResetEnabled = 1;
// Show device offset and size
if ( rp->Class == pwr_cClass_Epl_CN && rp->op) {
((pwr_sClass_Epl_CN *)rp->op)->InputAreaOffset = input_area_offset + input_area_chansize;
((pwr_sClass_Epl_CN *)rp->op)->OutputAreaOffset = output_area_offset + output_area_chansize;
}
// Get byte ordering
pwr_tAName name;
pwr_tEnum byte_ordering;
strcpy( name, rp->Name);
strcat( name, ".ByteOrdering");
sts = gdh_GetObjectInfo( name, &byte_ordering, sizeof(byte_ordering));
if ( ODD(sts))
((io_sLocalEpl_CN *)rp->Local)->byte_ordering = byte_ordering;
else
((io_sLocalEpl_CN *)rp->Local)->byte_ordering =
pwr_eByteOrderingEnum_LittleEndian;
for ( cp = rp->cardlist; cp; cp = cp->next) {
cid = cp->Class;
while ( ODD( gdh_GetSuperClass( cid, &cid, cp->Objid))) ;
cp->MethodDisabled = 1;
// Show module offset and size
if ( cid == pwr_cClass_Epl_Module && cp->op) {
((pwr_sClass_Epl_Module *)cp->op)->InputAreaOffset =
input_area_offset + input_area_chansize;
((pwr_sClass_Epl_Module *)cp->op)->OutputAreaOffset =
output_area_offset + output_area_chansize;
}
io_bus_card_init( ctx, cp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize, byte_ordering,
io_eAlignment_Powerlink);
// Show module offset and size
if ( cid == pwr_cClass_Epl_Module && cp->op) {
((pwr_sClass_Epl_Module *)cp->op)->InputAreaSize =
input_area_offset + input_area_chansize - ((pwr_sClass_Epl_Module *)cp->op)->InputAreaOffset;
((pwr_sClass_Epl_Module *)cp->op)->OutputAreaSize =
output_area_offset + output_area_chansize - ((pwr_sClass_Epl_Module *)cp->op)->OutputAreaOffset;
}
if(rp->next == NULL) {
if(cp->next == NULL) {
((pwr_sClass_Epl_Module *)cp->op)->InputAreaSize +=
pwr_Align(input_area_offset + input_area_chansize, 4) -
(input_area_offset + input_area_chansize);
((pwr_sClass_Epl_Module *)cp->op)->OutputAreaSize +=
pwr_Align(output_area_offset + output_area_chansize, 4) -
(output_area_offset + output_area_chansize);
}
}
}
// Show slave offset and size
if ( rp->Class == pwr_cClass_Epl_CN && rp->op) {
((pwr_sClass_Epl_CN *)rp->op)->InputAreaSize = input_area_offset +
input_area_chansize - ((pwr_sClass_Epl_CN *)rp->op)->InputAreaOffset;
((pwr_sClass_Epl_CN *)rp->op)->OutputAreaSize = output_area_offset +
output_area_chansize - ((pwr_sClass_Epl_CN *)rp->op)->OutputAreaOffset;
if(rp->next == NULL) {
((pwr_sClass_Epl_CN *)rp->op)->InputAreaSize +=
pwr_Align(input_area_offset + input_area_chansize, 4) - (input_area_offset + input_area_chansize);
((pwr_sClass_Epl_CN *)rp->op)->OutputAreaSize +=
pwr_Align(output_area_offset + output_area_chansize, 4) - (output_area_offset + output_area_chansize);
}
}
}
// This is the calculated in- and outputarea size
local->input_area_size = pwr_Align(input_area_offset + input_area_chansize, 4);
local->output_area_size = pwr_Align(output_area_offset + output_area_chansize, 4);
// Show agent in- and output area size
op->InputAreaSize = local->input_area_size;
op->OutputAreaSize = local->output_area_size;
struct sched_param schedParam;
// adjust process priority
if (nice (-20) == -1) // push nice level in case we have no RTPreempt
{
errh_Error("%s() couldn't set nice value! (%s)", __func__, strerror(errno));
}
schedParam.__sched_priority = MAIN_THREAD_PRIORITY;
if (pthread_setschedparam(pthread_self(), SCHED_RR, &schedParam) != 0)
{
errh_Error("%s() couldn't set thread scheduling parameters! %d", __func__, schedParam.__sched_priority);
}
// binds all openPOWERLINK threads to the second CPU core
cpu_set_t affinity;
CPU_ZERO(&affinity);
CPU_SET(1, &affinity);
sched_setaffinity(0, sizeof(cpu_set_t), &affinity);
// Initialize target specific stuff
EplTgtInit();
EPL_MEMSET(&EplApiInitParam, 0, sizeof (EplApiInitParam));
EplApiInitParam.m_uiSizeOfStruct = sizeof (EplApiInitParam);
EplApiInitParam.m_pEventUserArg = ap;
// Get devicename from attribute in agent
EplApiInitParam.m_HwParam.m_pszDevName = op->Device;
// Get nodeid from attribute in agent
EplApiInitParam.m_uiNodeId = op->NodeId;
EplApiInitParam.m_dwIpAddress = (0xFFFFFF00 & IP_ADDR) | EplApiInitParam.m_uiNodeId;
// write 00:00:00:00:00:00 to MAC address, so that the driver uses the real hardware address
EPL_MEMCPY(EplApiInitParam.m_abMacAddress, abMacAddr, sizeof (EplApiInitParam.m_abMacAddress));
EplApiInitParam.m_fAsyncOnly = FALSE;
EplApiInitParam.m_dwFeatureFlags = -1;
// required for error detection
EplApiInitParam.m_dwCycleLen = 5000;
// const
EplApiInitParam.m_uiIsochrTxMaxPayload = 256;
// const
EplApiInitParam.m_uiIsochrRxMaxPayload = 256;
// const; only required for IdentRes
EplApiInitParam.m_dwPresMaxLatency = 50000;
// required for initialisation (+28 bytes)
EplApiInitParam.m_uiPreqActPayloadLimit = 36;
// required for initialisation of Pres frame (+28 bytes)
EplApiInitParam.m_uiPresActPayloadLimit = 36;
// const; only required for IdentRes
EplApiInitParam.m_dwAsndMaxLatency = 150000;
// required for error detection
EplApiInitParam.m_uiMultiplCycleCnt = 0;
// required to set up max frame size
EplApiInitParam.m_uiAsyncMtu = 1500;
// required for sync
EplApiInitParam.m_uiPrescaler = 2;
EplApiInitParam.m_dwLossOfFrameTolerance = 500000;
EplApiInitParam.m_dwAsyncSlotTimeout = 3000000;
EplApiInitParam.m_dwWaitSocPreq = 150000;
// NMT_DeviceType_U32
EplApiInitParam.m_dwDeviceType = -1;
// NMT_IdentityObject_REC.VendorId_U32
EplApiInitParam.m_dwVendorId = -1;
// NMT_IdentityObject_REC.ProductCode_U32
EplApiInitParam.m_dwProductCode = -1;
// NMT_IdentityObject_REC.RevisionNo_U32
EplApiInitParam.m_dwRevisionNumber = -1;
// NMT_IdentityObject_REC.SerialNo_U32
EplApiInitParam.m_dwSerialNumber = -1;
EplApiInitParam.m_dwSubnetMask = SUBNET_MASK;
EplApiInitParam.m_dwDefaultGateway = 0;
EPL_MEMCPY(EplApiInitParam.m_sHostname, sHostname, sizeof(EplApiInitParam.m_sHostname));
EplApiInitParam.m_uiSyncNodeId = EPL_C_ADR_SYNC_ON_SOA;
EplApiInitParam.m_fSyncOnPrcNode = FALSE;
// set callback functions
EplApiInitParam.m_pfnCbEvent = (tEplApiCbEvent)AppCbEvent;
EplApiInitParam.m_pfnObdInitRam = EplObdInitRam;
EplApiInitParam.m_pfnCbSync = AppCbSync;
// initialize POWERLINK stack
EplRet = EplApiInitialize(&EplApiInitParam);
if(EplRet != kEplSuccessful)
{
errh_Error("EplApiInitialize() failed (Error:0x%x!", EplRet);
goto Exit;
}
EplRet = EplApiSetCdcFilename(pszCdcFilename_g);
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);
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;
if( local->inputResetEnabled && local->input_area_size > 0)
local->tmp_area = malloc(local->input_area_size);
else
local->tmp_area = local->input_area;
AppProcessImageCopyJob_g.m_fNonBlocking = FALSE;
AppProcessImageCopyJob_g.m_uiPriority = 0;
AppProcessImageCopyJob_g.m_In.m_pPart = AppProcessImageIn_g;
AppProcessImageCopyJob_g.m_In.m_uiOffset = 0;
AppProcessImageCopyJob_g.m_In.m_uiSize = local->output_area_size;
AppProcessImageCopyJob_g.m_Out.m_pPart = AppProcessImageOut_g;
AppProcessImageCopyJob_g.m_Out.m_uiOffset = 0;
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;
}
EplRet = EplApiProcessImageSetup();
if (EplRet != kEplSuccessful)
{
goto Exit;
}
// start processing
EplRet = EplApiExecNmtCommand(kEplNmtEventSwReset);
if (EplRet != kEplSuccessful)
{
IoAgentClose(NULL, NULL);
goto Exit;
}
errh_Success ("Powerlink init successfull");
return IO__SUCCESS;
Exit:
errh_Error("IoCardInit: returns 0x%X", EplRet);
return IO__SUCCESS;
}
//---------------------------------------------------------------------------
//
// Function: AppCbEvent
//
// Description: event callback function called by EPL API layer within
// user part (low priority).
//
// Parameters: EventType_p = event type
// pEventArg_p = pointer to union, which describes
// the event in detail
// pUserArg_p = user specific argument
//
// Returns: tEplKernel = error code,
// kEplSuccessful = no error
// kEplReject = reject further processing
// otherwise = post error event to API layer
//
// State:
//
//---------------------------------------------------------------------------
tEplKernel PUBLIC AppCbEvent (
tEplApiEventType EventType_p, // IN: event type (enum)
tEplApiEventArg* pEventArg_p, // IN: event argument (union)
io_sAgent* pUserArg_p
)
{
UINT uiVarLen;
tEplKernel EplRet = kEplSuccessful;
pwr_sClass_Epl_MN *op = (pwr_sClass_Epl_MN *)pUserArg_p->op;
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 (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));
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:
{
}
}
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
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
errh_Error(" OrgSource = %s %02X", EplGetEventSourceStr(pEventArg_p->m_InternalError.m_Arg.m_EventSource),
pEventArg_p->m_InternalError.m_Arg.m_EventSource);
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
errh_Error(" val = %X", pEventArg_p->m_InternalError.m_Arg.m_dwArg);
break;
}
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]);
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:
{
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;
((pwr_sClass_Epl_CN *)rp->op)->Status = ((pwr_sClass_Epl_CN *)rp->op)->NmtState == pwr_eEplNmtState_EplNmtCsOperational ? IOM__EPL_OPER : IOM__EPL_NOOPER;
}
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;
}
}
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;
}
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
//
// Description: sync event callback function called by event module within
// kernel part (high priority).
// This function sets the outputs, reads the inputs and runs
// the control loop.
//
// Parameters: void
//
// Returns: tEplKernel = error code,
// kEplSuccessful = no error
// otherwise = post error event to API layer
//
// State:
//
//---------------------------------------------------------------------------
tEplKernel PUBLIC AppCbSync(void)
{
tEplKernel EplRet = kEplSuccessful;
EplRet = EplApiProcessImageExchange(&AppProcessImageCopyJob_g);
if (EplRet != kEplSuccessful)
{
return EplRet;
}
return EplRet;
}
/*----------------------------------------------------------------------------*\
Close method for the Powerlink master
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoAgentClose( io_tCtx ctx, io_sAgent *ap) {
tEplKernel EplRet = kEplSuccessful;
io_sLocalEpl_MN *local = (io_sLocalEpl_MN *)ap->Local;
io_sRack *rp;
free(local);
for ( rp = ap->racklist; rp; rp = rp->next)
free( (io_sLocalEpl_CN *)rp->Local);
// halt the NMT state machine
// so the processing of POWERLINK frames stops
EplRet = EplApiExecNmtCommand(kEplNmtEventSwitchOff);
// delete process image
EplRet = EplApiProcessImageFree();
// delete instance for all modules
EplRet = EplApiShutdown();
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Read method for the Powerlink master
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) {
io_sLocalEpl_MN *local = (io_sLocalEpl_MN *)ap->Local;
io_sLocalEpl_CN *local1;
pwr_sClass_Epl_MN *op = (pwr_sClass_Epl_MN *)ap->op;
io_sRack *rp;
io_sCard *cp;
pwr_tUInt32 error_count = 0;
int ret = IO__SUCCESS;
// Time now (tps = time when bad state occurred)
clock_gettime(CLOCK_REALTIME, &local->tpe);
// Copy Powerlink process image to temp memory (only if stallaction=resetinputs else tmp_area=input_area)
if( op->StallAction == pwr_eStallActionEnum_ResetInputs)
memcpy( local->tmp_area , local->input_area, local->input_area_size);
// Save time when bad state occurs
if( op->NmtState == pwr_eEplNmtState_EplNmtMsOperational)
{
op->ErrorCount = 0;
(local->tps).tv_sec = 0;
}
else if( (local->tps).tv_sec == 0)
{
clock_gettime(CLOCK_REALTIME, &local->tps);
}
// If Timeout time has passed and still in bad state, start adding to ErrorCount
if( (local->tpe).tv_sec - (local->tps).tv_sec >= op->Timeout && (local->tps).tv_sec != 0)
op->ErrorCount++;
// Agent error soft limit reached, tell log (once)
if ( op->ErrorCount >= op->ErrorSoftLimit && error_count < op->ErrorSoftLimit) {
errh_Warning( "IO Agent ErrorSoftLimit reached, '%s'", ap->Name);
}
// Agent error hard limit reached, tell log (once)
if ( op->ErrorCount >= op->ErrorHardLimit && error_count < op->ErrorHardLimit) {
if( op->StallAction == pwr_eStallActionEnum_EmergencyBreak) {
errh_Error( "IO Agent ErrorHardLimit reached '%s', IO stopped", ap->Name);
}
else if( op->StallAction == pwr_eStallActionEnum_ResetInputs) {
errh_Error( "IO Agent ErrorHardLimit reached '%s', IO input area reset", ap->Name);
}
else
errh_Error( "IO Agent ErrorHardLimit reached '%s'", ap->Name);
}
// Agent error hard limit reached, take action (always)
if ( op->ErrorCount >= op->ErrorHardLimit) {
if( op->StallAction == pwr_eStallActionEnum_EmergencyBreak) {
ctx->Node->EmergBreakTrue = 1;
}
else if( op->StallAction == pwr_eStallActionEnum_ResetInputs) {
memset( local->tmp_area, 0, local->input_area_size);
}
ret = IO__ERRDEVICE;
}
// Loop through all slaves
for ( rp = ap->racklist; rp; rp = rp->next) {
local1 = (io_sLocalEpl_CN *)rp->Local;
// Time now (tps = time when bad state occurred)
clock_gettime(CLOCK_REALTIME, &local1->tpe);
pwr_tUInt32 error_count = ((pwr_sClass_Epl_CN *)rp->op)->ErrorCount;
// Save time when bad state occurs
if( ( (pwr_sClass_Epl_CN *)rp->op)->NmtState == pwr_eEplNmtState_EplNmtCsOperational) {
( (pwr_sClass_Epl_CN *)rp->op)->ErrorCount = 0;
(local1->tps).tv_sec = 0;
}
else if( (local1->tps).tv_sec == 0)
clock_gettime(CLOCK_REALTIME, &local1->tps);
// If Timeout time has passed and still in bad state, start adding to ErrorCount
if( (local1->tpe).tv_sec - (local1->tps).tv_sec >= ((pwr_sClass_Epl_CN *)rp->op)->Timeout && (local1->tps).tv_sec != 0)
( (pwr_sClass_Epl_CN *)rp->op)->ErrorCount++;
// Slave error soft limit reached, tell log (once)
if ( ((pwr_sClass_Epl_CN *)rp->op)->ErrorCount >= ((pwr_sClass_Epl_CN *)rp->op)->ErrorSoftLimit && error_count < ((pwr_sClass_Epl_CN *)rp->op)->ErrorSoftLimit) {
errh_Warning( "IO Card ErrorSoftLimit reached, '%s'", rp->Name);
}
// Slave error hard limit reached, tell log (once)
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 Card ErrorHardLimit reached '%s', IO stopped", rp->Name);
}
else if( ((pwr_sClass_Epl_CN *)rp->op)->StallAction == pwr_eStallActionEnum_ResetInputs) {
errh_Error( "IO Card ErrorHardLimit reached '%s', IO input area reset", rp->Name);
}
else
errh_Error( "IO Card ErrorHardLimit reached '%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;
}
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);
}
ret = IO__ERRDEVICE;
}
// Update Proview chan-objects with data from Powerlink process image
for ( cp = rp->cardlist; cp; cp = cp->next) {
io_bus_card_read( ctx, rp, cp, local->tmp_area, 0, ((io_sLocalEpl_CN *)rp->Local)->byte_ordering, pwr_eFloatRepEnum_FloatIEEE);
}
}
return ret;
}
/*----------------------------------------------------------------------------*\
Write method for the Powerlink master
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoAgentWrite( io_tCtx ctx, io_sAgent *ap) {
io_sLocalEpl_MN *local = (io_sLocalEpl_MN *)ap->Local;
//pwr_sClass_Epl_MN *op = (pwr_sClass_Epl_MN *)ap->op;
io_sRack *rp;
io_sCard *cp;
for ( rp = ap->racklist; rp; rp = rp->next) {
for ( cp = rp->cardlist; cp; cp = cp->next) {
io_bus_card_write( ctx, cp, local->output_area, ((io_sLocalEpl_CN *)rp->Local)->byte_ordering, pwr_eFloatRepEnum_FloatIEEE);
}
}
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Initialization of a bus card.
\*----------------------------------------------------------------------------*/
#else
static pwr_tStatus IoAgentInit( io_tCtx ctx, io_sAgent *ap) { return IO__RELEASEBUILD;}
static pwr_tStatus IoAgentClose( io_tCtx ctx, io_sAgent *ap) { return IO__RELEASEBUILD;}
static pwr_tStatus IoAgentRead( io_tCtx ctx, io_sAgent *ap) { return IO__RELEASEBUILD;}
static pwr_tStatus IoAgentWrite( io_tCtx ctx, io_sAgent *ap) { return IO__RELEASEBUILD;}
#endif
/*----------------------------------------------------------------------------*\
Every method to be exported to the workbench should be registred here.
\*----------------------------------------------------------------------------*/
pwr_dExport pwr_BindIoMethods(Epl_MN) = {
pwr_BindIoMethod(IoAgentInit),
pwr_BindIoMethod(IoAgentClose),
pwr_BindIoMethod(IoAgentRead),
pwr_BindIoMethod(IoAgentWrite),
pwr_NullMethod
};
/*
* 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.
**/
#include "pwr.h"
#include "pwr_basecomponentclasses.h"
#include "rt_io_base.h"
#include "rt_io_card_init.h"
#include "rt_io_card_close.h"
#include "rt_io_card_read.h"
#include "rt_io_card_write.h"
#include "rt_io_msg.h"
#include "pwr_otherioclasses.h"
/*----------------------------------------------------------------------------*\
Init method for the Powerlink module
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoCardInit (
io_tCtx ctx,
io_sAgent *ap,
io_sRack *rp,
io_sCard *cp
)
{
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Read method for the Powerlink module
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoCardRead (
io_tCtx ctx,
io_sAgent *ap,
io_sRack *rp,
io_sCard *cp
)
{
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Write method for the Powerlink module
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoCardWrite (
io_tCtx ctx,
io_sAgent *ap,
io_sRack *rp,
io_sCard *cp
)
{
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Close method for the Powerlink module
\*----------------------------------------------------------------------------*/
static pwr_tStatus IoCardClose (
io_tCtx ctx,
io_sAgent *ap,
io_sRack *rp,
io_sCard *cp
)
{
return IO__SUCCESS;
}
/*----------------------------------------------------------------------------*\
Every method to be exported to the workbench should be registred here.
\*----------------------------------------------------------------------------*/
pwr_dExport pwr_BindIoMethods(Epl_Module) = {
pwr_BindIoMethod(IoCardInit),
pwr_BindIoMethod(IoCardRead),
pwr_BindIoMethod(IoCardWrite),
pwr_BindIoMethod(IoCardClose),
pwr_NullMethod
};
......@@ -233,7 +233,8 @@ static pwr_tStatus IoAgentInit( io_tCtx ctx,
}
io_bus_card_init( ctx, cp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize, byte_ordering);
&output_area_offset, &output_area_chansize, byte_ordering,
io_eAlignment_Packed);
// Show module offset and size
if ( cp->Class == pwr_cClass_Hilscher_cifX_Module && cp->op) {
......
......@@ -131,7 +131,7 @@ static pwr_tStatus IoRackInit (
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
pwr_eByteOrderingEnum_BigEndian);
pwr_eByteOrderingEnum_BigEndian, io_eAlignment_Packed);
/* Count number of di and do */
for (i = 0; i < cardp->ChanListSize; i++) {
......
......@@ -890,7 +890,7 @@ static pwr_tStatus mb_init_channels( io_tCtx ctx, io_sAgent *ap, io_sRack *rp)
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
pwr_eByteOrderingEnum_BigEndian);
pwr_eByteOrderingEnum_BigEndian, io_eAlignment_Packed);
for (i = 0; i < cardp->ChanListSize; i++) {
chanp = &cardp->chanlist[i];
......
......@@ -717,7 +717,7 @@ static pwr_tStatus IoRackInit (
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
pwr_eByteOrderingEnum_BigEndian);
pwr_eByteOrderingEnum_BigEndian, io_eAlignment_Packed);
/* Count number of di and do */
for (i = 0; i < cardp->ChanListSize; i++) {
......@@ -769,7 +769,7 @@ static pwr_tStatus IoRackInit (
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
pwr_eByteOrderingEnum_BigEndian);
pwr_eByteOrderingEnum_BigEndian, io_eAlignment_Packed);
/* Count number of di and do */
for (i = 0; i < cardp->ChanListSize; i++) {
......
......@@ -246,7 +246,7 @@ static pwr_tStatus IoRackInit (
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
op->ByteOrdering);
op->ByteOrdering, io_eAlignment_Packed);
break;
}
}
......@@ -293,7 +293,7 @@ static pwr_tStatus IoRackInit (
io_bus_card_init( ctx, cardp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize,
op->ByteOrdering);
op->ByteOrdering, io_eAlignment_Packed);
local_card->input_size = input_area_offset + input_area_chansize -
prev_input_area_offset;
......
......@@ -167,7 +167,8 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
local->byte_ordering = op->ByteOrdering;
io_bus_card_init( ctx, cp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize, local->byte_ordering);
&output_area_offset, &output_area_chansize, local->byte_ordering,
io_eAlignment_Packed);
local->input_area_size = input_area_offset + input_area_chansize;
local->output_area_size = output_area_offset + output_area_chansize;
......
......@@ -310,7 +310,8 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
local->byte_ordering = op->ByteOrdering;
io_bus_card_init( ctx, cp, &input_area_offset, &input_area_chansize,
&output_area_offset, &output_area_chansize, local->byte_ordering);
&output_area_offset, &output_area_chansize, local->byte_ordering,
io_eAlignment_Packed);
local->input_area_size = input_area_offset + input_area_chansize;
local->output_area_size = output_area_offset + output_area_chansize;
......
......@@ -28,4 +28,6 @@ UDP_IO
SPI_Slave
Nodave_PLC
Nodave_Transaction
Epl_MN
Epl_Module
#endif
\ No newline at end of file
include $(pwre_dir_symbols)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_kroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
/*
* 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 "wb_ldh_msg.h"
#include "wb_ldh.h"
#include "wb_pwrb_msg.h"
#include "wb_wnav.h"
#include "wb_wsx.h"
using namespace std;
static pwr_tStatus Configure (
ldh_sMenuCall *ip
)
{
pwr_tCmd cmd = "openCONFIGURATOR";
system( cmd);
return 1;
}
static pwr_tStatus ConfigureFilter (
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_MN) = {
pwr_BindMethod(Configure),
pwr_BindMethod(ConfigureFilter),
pwr_NullMethod
};
#if OS_LINUX
Epl_MN
#endif
\ No newline at end of file
include $(pwre_dir_symbols)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_kroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_kroot)/tools/bld/src/$(type_name)_generic.mk
endif
-include ../../special.mk
-include ../special.mk
-include special.mk
0! DefaultWidth 615
0! DefaultHeight 72
1
100 20
135 20
101 20
102 -37
103 -22
104 3.7377
136 3.7377
105 100
106 -6
107 -4
108 30.1132
109 0.65
110 4.81052
111 2.15
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 65
2202 pwr_c_eplhandler
2203 51
2205 0
2204
2206 0
2207
2208
2209 0.25
2210 1.7
2211 31
2212 5.35
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 700
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
3
300 pwr_valuesmall
301
2
19
1904
1900 2.3
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 2.3
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
99
124
2
99
125
2
30
3004 O62
3000 2.7
3001 0.65
3002 3.81052
3003 3.21052
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.45
2803 0
2804 1
2805 1.21052
2806 0
99
99
30
3004 O63
3000 4.55
3001 0.65
3002 4.81052
3003 4.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 LogMessage
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.45
2803 0
2804 1
2805 2.21052
2806 0
99
99
30
3004 O64
3000 3.7
3001 0.65
3002 2.81052
3003 2.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 CycleTime
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 -0.45
2803 0
2804 1
2805 0.21052
2806 0
99
99
27
2703 33
2704 31
2722 10000
2705 31
2723 10000
2706 33
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_valuesmall
1002 O52
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 9.37555
1007 5.9
1008 2.85
1009 2.15
1013 9.37555
1014 5.9
1015 2.85
1016 2.15
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 10.25
701 2.1
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.51111
2801 0
2802 5.9
2803 0
2804 1
2805 2.15
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.CycleTime##Float32
1201 %7.3f
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 O58
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.5
1007 5.9
1008 3.8
1009 3.15
1013 6.5
1014 5.9
1015 3.8
1016 3.15
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 5.75
2803 0
2804 1
2805 3.05
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $node.ProcStatus[24]##status
3101 38
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 O59
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.5
1007 5.9
1008 4.7
1009 4.05
1013 6.5
1014 5.9
1015 4.7
1016 4.05
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 5.75
2803 0
2804 1
2805 3.95
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $node.ProcMsgSeverity[24]##status
3101 38
99
99
99
27
2703 33
2704 10000
2722 10000
2705 10000
2723 10000
2706 33
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 O60
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 30.1132
1007 6.7
1008 4.75
1009 4.05
1013 30.1132
1014 6.7
1015 4.75
1016 4.05
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.880194
2801 0
2802 6.7
2803 0
2804 1
2805 4.05
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 $node.ProcMessage[24]##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
27
2703 33
2704 10000
2722 10000
2705 10000
2723 10000
2706 33
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 O61
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 30.106
1007 6.7
1008 3.8
1009 3.1
1013 30.106
1014 6.7
1015 3.8
1016 3.1
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.879925
2801 0
2802 6.7
2803 0
2804 1
2805 3.1
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 $node.ProcStatus[24]##Status
1201 %1m
1202 1
1203 1
1204 0
99
99
99
99
99
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -50,6 +50,8 @@
#include "pwr_baseclasses.h"
#include "pwr_remoteclasses.h"
#include "pwr_nmpsclasses.h"
#include "pwr_basecomponentclasses.h"
#include "pwr_otherioclasses.h"
#include "pwr_opcclasses.h"
#include "co_dbs.h"
#include "co_tree.h"
......@@ -133,6 +135,7 @@
# define cPrio_report (cPrio_base + 5)
# define cPrio_sevhistmon (cPrio_base + 15)
# define cPrio_sev_server (cPrio_base + 15)
# define cPrio_powerlink (cPrio_base + 15)
# define cPrio_plc_init (cPrio_base + 5)
# define cPrio_remh (cPrio_base + 5)
# define cPrio_remotelogg (cPrio_base + 5)
......@@ -2125,6 +2128,9 @@ ini_ProcTable (
pp = ini_ProcInsert(sts, cp, "pwr_sev_server", "pwr_sev_server_%d", 0, 1, "sev_server", cPrio_sev_server, 0, pwr_cClass_SevServer, "", 0);
pp->proc.flags.b.system = 1;
pp = ini_ProcInsert(sts, cp, "pwr_powerlink", "pwr_powerlink_%d", 0, 1, "rt_powerlink", cPrio_powerlink, 0, pwr_cClass_EplHandler, "", 0);
pp->proc.flags.b.system = 1;
pp = ini_ProcInsert(sts, cp, "pwr_sim", "pwr_sim_%d", 0, 1, "rt_sim", cPrio_sim, 0, pwr_cClass_SimulateConfig, "", 0);
pp->proc.flags.b.system = 1;
#endif
......
......@@ -126,6 +126,7 @@ extern "C" {
#endif
#define pwr_AlignW(offs) (((offs) + (pwr_cAlignW-1)) & ~(pwr_cAlignW-1))
#define pwr_AlignLW(offs) (((offs) + (pwr_cAlignLW-1)) & ~(pwr_cAlignLW-1))
#define pwr_Align(offs, align) ((offs + (align-1)) & ~(align-1))
/* PROVIEW/R types */
......
......@@ -124,6 +124,7 @@ typedef enum {
errh_eAnix_report = 22,
errh_eAnix_sevhistmon = 23,
errh_eAnix_sim = 24,
errh_eAnix_powerlink = 25,
errh_eAnix_plc1 = 41,
errh_eAnix_plc2 = 42,
errh_eAnix_plc3 = 43,
......
......@@ -105,6 +105,7 @@ typedef enum {
io_mProcess_User2 = 1 << 4,
io_mProcess_User3 = 1 << 5,
io_mProcess_User4 = 1 << 6,
io_mProcess_Powerlink = 1 << 7,
io_mProcess_All = ~0
} io_mProcess;
......
......@@ -254,7 +254,8 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
unsigned int *input_area_chansize,
unsigned int *output_area_offset,
unsigned int *output_area_chansize,
pwr_tByteOrderingEnum byte_order)
pwr_tByteOrderingEnum byte_order,
io_eAlignment alignment)
{
int i;
......@@ -272,6 +273,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->mask = 1 << chan_di->Number;
if ( byte_order == pwr_eByteOrderingEnum_BigEndian) {
......@@ -290,6 +294,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->size = *input_area_chansize;
chanp->mask = 0;
......@@ -304,6 +311,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->size = *input_area_chansize;
chanp->mask = 0;
......@@ -318,6 +328,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->size = *input_area_chansize;
chanp->mask = 0;
......@@ -331,6 +344,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop || !chan_bi->Size)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->size = *input_area_chansize;
chanp->mask = 0;
......@@ -348,6 +364,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop || !chan_bo->Size)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->size = *output_area_chansize;
chanp->mask = 0;
......@@ -364,6 +383,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop || !chan_bi->Size)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->size = *input_area_chansize;
chanp->mask = 0;
......@@ -378,6 +400,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop || !chan_bo->Size)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->size = *output_area_chansize;
chanp->mask = 0;
......@@ -394,6 +419,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->mask = 1 << chan_do->Number;
if ( byte_order == pwr_eByteOrderingEnum_BigEndian) {
......@@ -412,6 +440,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->size = *output_area_chansize;
chanp->mask = 0;
......@@ -426,6 +457,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->size = *output_area_chansize;
chanp->mask = 0;
......@@ -443,6 +477,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*input_area_offset = pwr_Align(*input_area_offset, *input_area_chansize);
chanp->offset = *input_area_offset;
chanp->mask = 1 << chan_d->Number;
if ( byte_order == pwr_eByteOrderingEnum_BigEndian) {
......@@ -461,6 +498,9 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
if ( !chanp->sop)
continue;
if( alignment == io_eAlignment_Powerlink)
*output_area_offset = pwr_Align(*output_area_offset, *output_area_chansize);
chanp->offset = *output_area_offset;
chanp->mask = 1 << chan_d->Number;
if ( byte_order == pwr_eByteOrderingEnum_BigEndian) {
......
......@@ -77,6 +77,11 @@ extern "C"
# endif
#endif
typedef enum {
io_eAlignment_Packed,
io_eAlignment_Powerlink
} io_eAlignment;
/*----------------------------------------------------------------------------*\
Io functions
\*----------------------------------------------------------------------------*/
......@@ -96,7 +101,8 @@ pwr_tStatus io_bus_card_init( io_tCtx ctx,
unsigned int *input_area_chansize,
unsigned int *output_area_offset,
unsigned int *output_area_chansize,
pwr_tByteOrderingEnum byte_order);
pwr_tByteOrderingEnum byte_order,
io_eAlignment alignment);
void io_bus_card_read( io_tCtx ctx,
io_sRack *rp,
......
......@@ -49,6 +49,8 @@ spi_init <SPI initialization error> /error
spi_normal <SPI normal operating state> /info
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
.end
......@@ -182,6 +182,10 @@ if getent group dialout > /dev/null; then
fi
chown root /usr/pwrrt/exe/rt_prio
chmod u+s /usr/pwrrt/exe/rt_prio
if [ -e /usr/pwrrt/exe/rt_powerlink ]; then
chown root /usr/pwrrt/exe/rt_powerlink
chmod u+s /usr/pwrrt/exe/rt_powerlink
fi
chown root /usr/pwrrt/exe/rt_mozilla
chmod u+s /usr/pwrrt/exe/rt_mozilla
......
......@@ -32,6 +32,10 @@ if getent group dialout > /dev/null; then
fi
chown root /usr/pwrrt/exe/rt_prio
chmod u+s /usr/pwrrt/exe/rt_prio
if [ -e /usr/pwrrt/exe/rt_powerlink ]; then
chown root /usr/pwrrt/exe/rt_powerlink
chmod u+s /usr/pwrrt/exe/rt_powerlink
fi
chown root /usr/pwrrt/exe/rt_mozilla
chmod u+s /usr/pwrrt/exe/rt_mozilla
......
......@@ -182,6 +182,10 @@ if getent group dialout > /dev/null; then
fi
chown root /usr/pwrrt/exe/rt_prio
chmod u+s /usr/pwrrt/exe/rt_prio
if [ -e /usr/pwrrt/exe/rt_powerlink ]; then
chown root /usr/pwrrt/exe/rt_powerlink
chmod u+s /usr/pwrrt/exe/rt_powerlink
fi
chown root /usr/pwrrt/exe/rt_mozilla
chmod u+s /usr/pwrrt/exe/rt_mozilla
......
......@@ -153,6 +153,10 @@ if grep -q "\bdialout:" /etc/group; then
fi
chown root /usr/pwrrt/exe/rt_prio
chmod u+s /usr/pwrrt/exe/rt_prio
if [ -e /usr/pwrrt/exe/rt_powerlink ]; then
chown root /usr/pwrrt/exe/rt_powerlink
chmod u+s /usr/pwrrt/exe/rt_powerlink
fi
chown root /usr/pwrrt/exe/rt_mozilla
chmod u+s /usr/pwrrt/exe/rt_mozilla
......
......@@ -153,6 +153,10 @@ if grep -q "\bdialout:" /etc/group; then
fi
chown root /usr/pwrrt/exe/rt_prio
chmod u+s /usr/pwrrt/exe/rt_prio
if [ -e /usr/pwrrt/exe/rt_powerlink ]; then
chown root /usr/pwrrt/exe/rt_powerlink
chmod u+s /usr/pwrrt/exe/rt_powerlink
fi
chown root /usr/pwrrt/exe/rt_mozilla
chmod u+s /usr/pwrrt/exe/rt_mozilla
......
......@@ -254,6 +254,7 @@ sub build_kernel # args: flavour
_build("lib","usb_dummy","src","init lib");
_build("lib","cifx_dummy","src","init lib");
_build("lib","nodave_dummy","src","init lib");
_build("lib","epl_dummy","src","init lib");
merge();
_module("xtt");
build_all("exe", $flavour);
......@@ -369,6 +370,7 @@ sub ebuild # args: pass flavour
_build("lib","usb_dummy","src","init lib");
_build("lib","cifx_dummy","src","init lib");
_build("lib","nodave_dummy","src","init lib");
_build("lib","epl_dummy","src","init lib");
merge();
_module("rt");
_build("exe", "rt*", "src", "all");
......@@ -762,12 +764,12 @@ sub build_all_wbl ()
system( "rm $load_dir/*.dbs");
_build("wbl", "mcomp", "src", "lib");
merge();
_module("othermanu");
_module("otherio");
my($load_dir) = $ENV{"pwr_load"};
system( "rm $load_dir/*.dbs");
_build("wbl", "mcomp", "src", "lib");
merge();
_module("otherio");
_module("othermanu");
my($load_dir) = $ENV{"pwr_load"};
system( "rm $load_dir/*.dbs");
_build("wbl", "mcomp", "src", "lib");
......
......@@ -161,6 +161,8 @@ pwre_config_check_lib()
conf_libpnak=$conf_libpnak" -l${lib%.*}"
elif test $4 == "libusb"; then
conf_lib=$conf_lib" -lusb-1.0"
elif test $4 == "powerlink"; then
conf_libpowerlink=$conf_libpowerlink" -l${lib%.*}"
else
conf_lib=$conf_lib" -l${lib%%.*}"
fi
......@@ -430,11 +432,14 @@ else
pwre_config_check_lib wmq WMQ lib wmq 1 "/usr/lib/libmqic.so"
pwre_config_check_lib libpnioif PNAK lib pnak 1 "/usr/lib/libpnioif.a:/usr/local/lib/libpnioif.a"
pwre_config_check_lib libusb LIBUSB lib libusb 1 "/usr/lib/libusb-1.0.so:/usr/lib/$hwpl-linux-$gnu/libusb-1.0.so"
pwre_config_check_lib powerlink POWERLINK lib powerlink 1 "$epl/build/Examples/X86/Generic/powerlink_user_lib/libpowerlink.a"
pwre_config_check_include mq MQ 0 "/usr/local/dmq/include/p_entry.h"
pwre_config_check_include wmq WMQ 1 "/opt/mqm/inc/cmqc.h"
pwre_config_check_include cifx CIFX 1 "/usr/local/include/cifx/cifxlinux.h"
pwre_config_check_include nodave NODAVE 1 "/usr/include/nodave.h"
pwre_config_check_include powerlink EPL 1 "$epl/Include/Epl.h"
pwre_config_check_include powerlinkuser EPLU 0 "$epl/Examples/X86/Generic/powerlink_user_lib/EplCfg.h"
pwre_config_check_tool android ANDROID "/usr/local/android-sdk-linux/tools/android"
......@@ -457,8 +462,9 @@ else
echo "export pwre_conf_libpwrco=\"-lpwr_co\"" >> $cfile
echo "export pwre_conf_libpwrrt=\"-lpwr_rt -lpwr_co -lpwr_statussrv -lpwr_msg_dummy\"" >> $cfile
echo "export pwre_conf_libpwrdtt=\"-lpwr_dtt\"" >> $cfile
echo "export pwre_conf_libpwrotherio=\"-lpwr_usbio_dummy -lpwr_usb_dummy -lpwr_cifx_dummy -lpwr_nodave_dummy\"" >> $cfile
echo "export pwre_conf_libpwrotherio=\"-lpwr_usbio_dummy -lpwr_usb_dummy -lpwr_cifx_dummy -lpwr_nodave_dummy -lpwr_epl_dummy\"" >> $cfile
echo "export pwre_conf_libpwrprofibus=\"-lpwr_pnak_dummy\"" >> $cfile
echo "export pwre_conf_libpwrpowerlink=\"$conf_libpowerlink\"" >> $cfile
echo "export pwre_conf_libpwrxtt=\"-lpwr_xtt -lpwr_ge -lpwr_cow -lpwr_flow -lpwr_glow\"" >> $cfile
echo "export pwre_conf_libpwrxttgtk=\" -lpwr_xtt_gtk -lpwr_ge_gtk -lpwr_cow_gtk -lpwr_flow_gtk -lpwr_glow_gtk\"" >> $cfile
echo "export pwre_conf_libpwrxttmotif=\" -lpwr_xtt_motif -lpwr_ge_motif -lpwr_cow_motif -lpwr_flow_motif -lpwr_glow_motif\"" >> $cfile
......
......@@ -118,6 +118,16 @@ SObject pwrb:Type
Attr Value = 64
EndBody
EndObject
!/**
! Powerlink. Device is handled by a rt_powerlink process.
!*/
Object Powerlink $Bit
Body SysBody
Attr PgmName = "Powerlink"
Attr Text = "Powerlink"
Attr Value = 128
EndBody
EndObject
EndObject
EndSObject
......
......@@ -184,7 +184,7 @@ CompileRtNode()
ld_opt_tmp="`cat $pwrp_exe/$FileName.opt`"
ld_opt="`eval echo $ld_opt_tmp`"
else
ld_opt="`eval echo $pwr_obj/rt_io_user.o -lpwr_rt -lpwr_usbio_dummy -lpwr_usb_dummy -lpwr_pnak_dummy -lpwr_cifx_dummy -lpwr_nodave_dummy`"
ld_opt="`eval echo $pwr_obj/rt_io_user.o -lpwr_rt -lpwr_usbio_dummy -lpwr_usb_dummy -lpwr_pnak_dummy -lpwr_cifx_dummy -lpwr_nodave_dummy -lpwr_epl_dummy`"
fi
if $ldxx $link_debug -L/lib/thread -L$pwrp_lib -L$pwrp_cmn/x86_linux/lib -L$pwr_lib \
......
......@@ -280,27 +280,62 @@ palette NavigatorPalette
class ChanIi
class ChanIo
}
menu PSS9000
menu GPIO
{
menu Rack
{
class Rack_SSAB
class Ssab_RemoteRack
}
menu Cards
{
class Ssab_AI32uP
class Ssab_AI16uP
class Ssab_Ai8uP
class Ssab_AO8uP
class Ssab_AO8uPL
class Ssab_AO16uP_Logger
class Ssab_Co4uP
class Ssab_DI32D
class Ssab_DO32DKS
class Ssab_DO32DKS_Stall
}
class GPIO
class GPIO_Module
}
menu Hilscher_cifX
{
class Hilscher_cifX_Master
class Hilscher_cifX_Device
class Hilscher_cifX_Module
}
menu Modbus_TCP
{
class Modbus_Master
class Modbus_TCP_Slave
class Modbus_Module
menu Server
{
class Modbus_TCP_Server
class Modbus_TCP_ServerModule
}
}
menu Modbus_RTU
{
class Modbus_RTU_Master
class Modbus_RTU_Slave
class Modbus_RTU_Module
menu Server
{
class Modbus_RTU_Server
class Modbus_RTU_ServerModule
}
}
menu Nodave
{
class Nodave_PLC
class Nodave_Transaction
}
menu OneWire
{
class OneWire
class OneWire_AiDevice
class OneWire_AoDevice
class Maxim_DS18B20
}
menu Powerlink
{
class Epl_MN
class Epl_CN
class EPl_Module
menu Server
{
class Epl_Server
class Epl_ServerModule
}
}
menu Profibus
{
menu Masters
......@@ -337,55 +372,36 @@ palette NavigatorPalette
class ABB_ACS_PnDevice
}
}
menu Modbus_TCP
{
class Modbus_Master
class Modbus_TCP_Slave
class Modbus_Module
menu Server
{
class Modbus_TCP_Server
class Modbus_TCP_ServerModule
}
}
menu Modbus_RTU
menu PSS9000
{
class Modbus_RTU_Master
class Modbus_RTU_Slave
class Modbus_RTU_Module
menu Server
{
class Modbus_RTU_Server
class Modbus_RTU_ServerModule
}
}
menu Hilscher_cifX
menu Rack
{
class Rack_SSAB
class Ssab_RemoteRack
}
menu Cards
{
class Ssab_AI32uP
class Ssab_AI16uP
class Ssab_Ai8uP
class Ssab_AO8uP
class Ssab_AO8uPL
class Ssab_AO16uP_Logger
class Ssab_Co4uP
class Ssab_DI32D
class Ssab_DO32DKS
class Ssab_DO32DKS_Stall
}
}
menu SPI
{
class Hilscher_cifX_Master
class Hilscher_cifX_Device
class Hilscher_cifX_Module
class SPI_Slave
}
menu UDP
{
class UDP_IO
class BaseIORack
}
menu GPIO
{
class GPIO
class GPIO_Module
}
menu OneWire
{
class OneWire
class OneWire_AiDevice
class OneWire_AoDevice
class Maxim_DS18B20
}
menu SPI
{
class SPI_Slave
}
menu USB
{
class USB_Agent
......@@ -410,11 +426,6 @@ palette NavigatorPalette
class BaseIORack
}
}
menu Nodave
{
class Nodave_PLC
class Nodave_Transaction
}
}
menu Remote
{
......
......@@ -3115,7 +3115,8 @@ pwr_tStatus lfu_check_appl_file( ldh_tSesContext ldhses,
"#pwr_statussrv, , noload, norun, , 5, debug, \"\"" << endl <<
"#pwr_post, , noload, norun, , 5, debug, \"\"" << endl <<
"#pwr_sevhistmon, , noload, norun, , 5, debug, \"\"" << endl <<
"#pwr_sev_server, , noload, norun, , 5, debug, \"\"" << endl;
"#pwr_sev_server, , noload, norun, , 5, debug, \"\"" << endl <<
"#rt_powerlink, , noload, norun, , 5, debug, \"\"" << endl;
fp.close();
return LFU__SUCCESS;
......
0! DefaultWidth 813
0! DefaultHeight 754
0! DefaultHeight 767
1
100 20
135 20
101 20
102 -38
103 294
104 2.66213
136 2.66213
103 174
104 3.0424
136 3.0424
105 100
106 -5
107 6
107 7
108 40.4564
109 0.64779
110 39.0481
110 39.8475
111 2.37709
116 0
117 33
118 90
119 114
117 19
118 102
119 112
120 1
121 Claes context
122 0
......@@ -36,7 +36,7 @@
134
22
2200 0
2201 422
2201 432
2202 pwr_c_node
2203 51
2205 0
......@@ -47,7 +47,7 @@
2209 0.35
2210 1.9
2211 41
2212 39.6
2212 40.3
2213 4
2214
pwrp_pop:
......@@ -55,7 +55,9 @@ pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2246 0
2236 0
2247 0
2216 0
2221 0
2237 0
......@@ -83,6 +85,7 @@ pwr_exe:
2234 2
2235 1
2243 0
2248 0
2245 0
2244
99
......@@ -151,7 +154,9 @@ pwr_exe:
306
307
308 4
330 0
321 0
331 0
309 29
313 0
322 0
......@@ -171,6 +176,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
3
300 pwr_valuelong
......@@ -263,7 +269,9 @@ pwr_exe:
306
307
308 1024
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -283,6 +291,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
3
300 pwr_smallbutton
......@@ -375,7 +384,9 @@ pwr_exe:
306
307
308 0
330 0
321 16
331 0
309 0
313 0
322 0
......@@ -395,6 +406,7 @@ pwr_exe:
319 0
320 0
328 1077182464
332 0
99
3
300 pwr_framethin
......@@ -544,7 +556,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -564,6 +578,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
124
......@@ -793,7 +808,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
......@@ -918,7 +935,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1084,7 +1103,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1216,7 +1237,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1382,7 +1405,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1548,7 +1573,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1714,7 +1741,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -1880,7 +1909,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -2046,7 +2077,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -2212,7 +2245,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -2378,7 +2413,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -2449,7 +2486,7 @@ pwr_exe:
0
1006 40.4564
1007 0.64779
1008 39.0481
1008 39.8475
1009 8.42103
1013 -1e+37
1014 1e+37
......@@ -2495,7 +2532,7 @@ pwr_exe:
2801 0
2802 -5.03915
2803 0
2804 7.65676
2804 7.85661
2805 8.42103
2806 0
99
......@@ -2510,7 +2547,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
......@@ -2635,7 +2674,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -2798,7 +2839,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -2930,7 +2973,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -3059,7 +3104,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -3191,7 +3238,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -3320,7 +3369,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -3452,7 +3503,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -3581,7 +3634,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -3713,7 +3768,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -3842,7 +3899,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -3974,7 +4033,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -4103,7 +4164,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -4235,7 +4298,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -4364,7 +4429,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -4496,7 +4563,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -4625,7 +4694,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -4757,7 +4828,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -4886,7 +4959,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -5018,7 +5093,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -5147,7 +5224,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -5279,7 +5358,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -5408,7 +5489,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -5540,7 +5623,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -5669,7 +5754,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -5801,7 +5888,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -5930,7 +6019,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -6064,7 +6155,9 @@ pwr_exe:
2721
1
100 1
105 0
101 67
106 0
102 65535
103 0
50
......@@ -6175,7 +6268,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -6195,6 +6290,7 @@ pwr_exe:
319 0
320 0
328 141621104
332 0
99
99
99
......@@ -6318,7 +6414,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -6447,7 +6545,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -6579,7 +6679,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -6708,7 +6810,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -6840,7 +6944,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -6972,7 +7078,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -7101,7 +7209,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -7235,7 +7345,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -7346,7 +7458,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -7366,6 +7480,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -7491,7 +7606,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -7602,7 +7719,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -7622,6 +7741,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -7747,7 +7867,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -7858,7 +7980,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -7878,6 +8002,7 @@ pwr_exe:
319 0
320 0
328 984
332 0
99
99
99
......@@ -8003,7 +8128,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -8114,7 +8241,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -8134,6 +8263,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -8259,7 +8389,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -8370,7 +8502,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -8390,6 +8524,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -8515,7 +8650,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -8626,7 +8763,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -8646,6 +8785,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -8771,7 +8911,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -8882,7 +9024,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -8902,6 +9046,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -9027,7 +9172,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -9138,7 +9285,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -9158,6 +9307,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -9281,7 +9431,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -9444,7 +9596,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -9573,7 +9727,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -9705,7 +9861,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -9834,7 +9992,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -9966,7 +10126,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -10095,7 +10257,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -10227,7 +10391,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -10356,7 +10522,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -10488,7 +10656,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -10617,7 +10787,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -10749,7 +10921,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -10878,7 +11052,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -11010,7 +11186,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -11139,7 +11317,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -11271,7 +11451,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -11400,7 +11582,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -11532,7 +11716,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -11661,7 +11847,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -11793,7 +11981,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -11922,7 +12112,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -12054,7 +12246,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -12183,7 +12377,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -12315,7 +12511,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -12444,7 +12642,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -12576,7 +12776,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -12705,7 +12907,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -12837,7 +13041,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -12966,7 +13172,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -13098,7 +13306,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -13230,7 +13440,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -13359,7 +13571,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -13491,7 +13705,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -13892,7 +14108,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -14021,7 +14239,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -14153,7 +14373,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -14282,7 +14504,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -14414,7 +14638,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -14543,7 +14769,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -14675,7 +14903,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -14804,7 +15034,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -14936,7 +15168,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -15065,7 +15299,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -15197,7 +15433,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -15326,7 +15564,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -15397,12 +15637,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 31.35
1009 30.7
1008 32.2
1009 31.55
1013 6.95
1014 6.35
1015 31.35
1016 30.7
1015 32.2
1016 31.55
1003
0
0
......@@ -15444,7 +15684,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 30.6
2805 31.45
2806 0
99
2716 0
......@@ -15458,7 +15698,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -15526,12 +15768,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 31.35
1009 30.65
1008 32.2
1009 31.5
1013 21.3185
1014 7.15
1015 31.35
1016 30.65
1015 32.2
1016 31.5
1003
0
0
......@@ -15573,7 +15815,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 30.65
2805 31.5
2806 0
99
2716 0
......@@ -15587,7 +15829,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -15658,12 +15902,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 31.35
1009 30.7
1008 32.2
1009 31.55
1013 22.65
1014 22.05
1015 31.35
1016 30.7
1015 32.2
1016 31.55
1003
0
0
......@@ -15705,7 +15949,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 30.6
2805 31.45
2806 0
99
2716 0
......@@ -15719,7 +15963,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -15787,12 +16033,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 31.35
1009 30.65
1008 32.2
1009 31.5
1013 40.0598
1014 22.8
1015 31.35
1016 30.65
1015 32.2
1016 31.5
1003
0
0
......@@ -15834,7 +16080,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 30.65
2805 31.5
2806 0
99
2716 0
......@@ -15848,7 +16094,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -15919,12 +16167,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 32.15
1009 31.5
1008 33
1009 32.35
1013 6.95
1014 6.35
1015 32.15
1016 31.5
1015 33
1016 32.35
1003
0
0
......@@ -15966,7 +16214,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 31.4
2805 32.25
2806 0
99
2716 0
......@@ -15980,7 +16228,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -16048,12 +16298,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 32.15
1009 31.45
1008 33
1009 32.3
1013 21.3185
1014 7.15
1015 32.15
1016 31.45
1015 33
1016 32.3
1003
0
0
......@@ -16095,7 +16345,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 31.45
2805 32.3
2806 0
99
2716 0
......@@ -16109,7 +16359,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -16180,12 +16432,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 32.15
1009 31.5
1008 33
1009 32.35
1013 22.65
1014 22.05
1015 32.15
1016 31.5
1015 33
1016 32.35
1003
0
0
......@@ -16227,7 +16479,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 31.4
2805 32.25
2806 0
99
2716 0
......@@ -16241,7 +16493,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -16309,12 +16563,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 32.15
1009 31.45
1008 33
1009 32.3
1013 40.0598
1014 22.8
1015 32.15
1016 31.45
1015 33
1016 32.3
1003
0
0
......@@ -16356,7 +16610,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 31.45
2805 32.3
2806 0
99
2716 0
......@@ -16370,7 +16624,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -16441,12 +16697,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 32.95
1009 32.3
1008 33.8
1009 33.15
1013 6.95
1014 6.35
1015 32.95
1016 32.3
1015 33.8
1016 33.15
1003
0
0
......@@ -16488,7 +16744,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 32.2
2805 33.05
2806 0
99
2716 0
......@@ -16502,7 +16758,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -16570,12 +16828,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 32.95
1009 32.25
1008 33.8
1009 33.1
1013 21.3185
1014 7.15
1015 32.95
1016 32.25
1015 33.8
1016 33.1
1003
0
0
......@@ -16617,7 +16875,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 32.25
2805 33.1
2806 0
99
2716 0
......@@ -16631,7 +16889,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -16702,12 +16962,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 32.95
1009 32.3
1008 33.8
1009 33.15
1013 22.65
1014 22.05
1015 32.95
1016 32.3
1015 33.8
1016 33.15
1003
0
0
......@@ -16749,7 +17009,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 32.2
2805 33.05
2806 0
99
2716 0
......@@ -16763,7 +17023,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -16831,12 +17093,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 32.95
1009 32.25
1008 33.8
1009 33.1
1013 40.0598
1014 22.8
1015 32.95
1016 32.25
1015 33.8
1016 33.1
1003
0
0
......@@ -16878,7 +17140,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 32.25
2805 33.1
2806 0
99
2716 0
......@@ -16892,7 +17154,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -16963,12 +17227,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 33.75
1009 33.1
1008 34.6
1009 33.95
1013 6.95
1014 6.35
1015 33.75
1016 33.1
1015 34.6
1016 33.95
1003
0
0
......@@ -17010,7 +17274,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 33
2805 33.85
2806 0
99
2716 0
......@@ -17024,7 +17288,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -17092,12 +17358,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 33.75
1009 33.05
1008 34.6
1009 33.9
1013 21.3185
1014 7.15
1015 33.75
1016 33.05
1015 34.6
1016 33.9
1003
0
0
......@@ -17139,7 +17405,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 33.05
2805 33.9
2806 0
99
2716 0
......@@ -17153,7 +17419,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -17224,12 +17492,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 33.75
1009 33.1
1008 34.6
1009 33.95
1013 22.65
1014 22.05
1015 33.75
1016 33.1
1015 34.6
1016 33.95
1003
0
0
......@@ -17271,7 +17539,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 33
2805 33.85
2806 0
99
2716 0
......@@ -17285,7 +17553,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -17353,12 +17623,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 33.75
1009 33.05
1008 34.6
1009 33.9
1013 40.0598
1014 22.8
1015 33.75
1016 33.05
1015 34.6
1016 33.9
1003
0
0
......@@ -17400,7 +17670,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 33.05
2805 33.9
2806 0
99
2716 0
......@@ -17414,7 +17684,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -17485,12 +17757,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 34.55
1009 33.9
1008 35.4
1009 34.75
1013 6.95
1014 6.35
1015 34.55
1016 33.9
1015 35.4
1016 34.75
1003
0
0
......@@ -17532,7 +17804,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 33.8
2805 34.65
2806 0
99
2716 0
......@@ -17546,7 +17818,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -17614,12 +17888,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 34.55
1009 33.85
1008 35.4
1009 34.7
1013 21.3185
1014 7.15
1015 34.55
1016 33.85
1015 35.4
1016 34.7
1003
0
0
......@@ -17661,7 +17935,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 33.85
2805 34.7
2806 0
99
2716 0
......@@ -17675,7 +17949,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -17746,12 +18022,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 34.55
1009 33.9
1008 35.4
1009 34.75
1013 22.65
1014 22.05
1015 34.55
1016 33.9
1015 35.4
1016 34.75
1003
0
0
......@@ -17793,7 +18069,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 33.8
2805 34.65
2806 0
99
2716 0
......@@ -17807,7 +18083,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -17875,12 +18153,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 34.55
1009 33.85
1008 35.4
1009 34.7
1013 40.0598
1014 22.8
1015 34.55
1016 33.85
1015 35.4
1016 34.7
1003
0
0
......@@ -17922,7 +18200,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 33.85
2805 34.7
2806 0
99
2716 0
......@@ -17936,7 +18214,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -18007,12 +18287,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 35.35
1009 34.7
1008 36.2
1009 35.55
1013 6.95
1014 6.35
1015 35.35
1016 34.7
1015 36.2
1016 35.55
1003
0
0
......@@ -18054,7 +18334,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 34.6
2805 35.45
2806 0
99
2716 0
......@@ -18068,7 +18348,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -18136,12 +18418,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 35.35
1009 34.65
1008 36.2
1009 35.5
1013 21.3185
1014 7.15
1015 35.35
1016 34.65
1015 36.2
1016 35.5
1003
0
0
......@@ -18183,7 +18465,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 34.65
2805 35.5
2806 0
99
2716 0
......@@ -18197,7 +18479,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -18268,12 +18552,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 35.35
1009 34.7
1008 36.2
1009 35.55
1013 22.65
1014 22.05
1015 35.35
1016 34.7
1015 36.2
1016 35.55
1003
0
0
......@@ -18315,7 +18599,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 34.6
2805 35.45
2806 0
99
2716 0
......@@ -18329,7 +18613,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -18397,12 +18683,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 35.35
1009 34.65
1008 36.2
1009 35.5
1013 40.0598
1014 22.8
1015 35.35
1016 34.65
1015 36.2
1016 35.5
1003
0
0
......@@ -18444,7 +18730,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 34.65
2805 35.5
2806 0
99
2716 0
......@@ -18458,7 +18744,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -18529,12 +18817,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 36.15
1009 35.5
1008 37
1009 36.35
1013 6.95
1014 6.35
1015 36.15
1016 35.5
1015 37
1016 36.35
1003
0
0
......@@ -18576,7 +18864,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 35.4
2805 36.25
2806 0
99
2716 0
......@@ -18590,7 +18878,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -18658,12 +18948,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 36.15
1009 35.45
1008 37
1009 36.3
1013 21.3185
1014 7.15
1015 36.15
1016 35.45
1015 37
1016 36.3
1003
0
0
......@@ -18705,7 +18995,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 35.45
2805 36.3
2806 0
99
2716 0
......@@ -18719,7 +19009,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -18790,12 +19082,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 36.15
1009 35.5
1008 37
1009 36.35
1013 22.65
1014 22.05
1015 36.15
1016 35.5
1015 37
1016 36.35
1003
0
0
......@@ -18837,7 +19129,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 35.4
2805 36.25
2806 0
99
2716 0
......@@ -18851,7 +19143,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -18919,12 +19213,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 36.15
1009 35.45
1008 37
1009 36.3
1013 40.0598
1014 22.8
1015 36.15
1016 35.45
1015 37
1016 36.3
1003
0
0
......@@ -18966,7 +19260,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 35.45
2805 36.3
2806 0
99
2716 0
......@@ -18980,7 +19274,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -19051,12 +19347,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 36.95
1009 36.3
1008 37.8
1009 37.15
1013 6.95
1014 6.35
1015 36.95
1016 36.3
1015 37.8
1016 37.15
1003
0
0
......@@ -19098,7 +19394,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 36.2
2805 37.05
2806 0
99
2716 0
......@@ -19112,7 +19408,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -19180,12 +19478,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 36.95
1009 36.25
1008 37.8
1009 37.1
1013 21.3185
1014 7.15
1015 36.95
1016 36.25
1015 37.8
1016 37.1
1003
0
0
......@@ -19227,7 +19525,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 36.25
2805 37.1
2806 0
99
2716 0
......@@ -19241,7 +19539,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -19312,12 +19612,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 36.95
1009 36.3
1008 37.8
1009 37.15
1013 22.65
1014 22.05
1015 36.95
1016 36.3
1015 37.8
1016 37.15
1003
0
0
......@@ -19359,7 +19659,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 36.2
2805 37.05
2806 0
99
2716 0
......@@ -19373,7 +19673,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -19441,12 +19743,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 36.95
1009 36.25
1008 37.8
1009 37.1
1013 40.0598
1014 22.8
1015 36.95
1016 36.25
1015 37.8
1016 37.1
1003
0
0
......@@ -19488,7 +19790,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 36.25
2805 37.1
2806 0
99
2716 0
......@@ -19502,7 +19804,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -19573,12 +19877,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 37.75
1009 37.1
1008 38.6
1009 37.95
1013 6.95
1014 6.35
1015 37.75
1016 37.1
1015 38.6
1016 37.95
1003
0
0
......@@ -19620,7 +19924,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 37
2805 37.85
2806 0
99
2716 0
......@@ -19634,7 +19938,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -19702,12 +20008,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 37.75
1009 37.05
1008 38.6
1009 37.9
1013 21.3185
1014 7.15
1015 37.75
1016 37.05
1015 38.6
1016 37.9
1003
0
0
......@@ -19749,7 +20055,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 37.05
2805 37.9
2806 0
99
2716 0
......@@ -19763,7 +20069,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -19834,12 +20142,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 37.75
1009 37.1
1008 38.6
1009 37.95
1013 22.65
1014 22.05
1015 37.75
1016 37.1
1015 38.6
1016 37.95
1003
0
0
......@@ -19881,7 +20189,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 37
2805 37.85
2806 0
99
2716 0
......@@ -19895,7 +20203,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -19963,12 +20273,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 37.75
1009 37.05
1008 38.6
1009 37.9
1013 40.0598
1014 22.8
1015 37.75
1016 37.05
1015 38.6
1016 37.9
1003
0
0
......@@ -20010,7 +20320,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 37.05
2805 37.9
2806 0
99
2716 0
......@@ -20024,7 +20334,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -20095,12 +20407,12 @@ pwr_exe:
0
1006 6.95
1007 6.35
1008 38.55
1009 37.9
1008 39.4
1009 38.75
1013 6.95
1014 6.35
1015 38.55
1016 37.9
1015 39.4
1016 38.75
1003
0
0
......@@ -20142,7 +20454,7 @@ pwr_exe:
2802 6.2
2803 0
2804 1
2805 37.8
2805 38.65
2806 0
99
2716 0
......@@ -20156,7 +20468,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -20224,12 +20538,12 @@ pwr_exe:
0
1006 21.3185
1007 7.15
1008 38.55
1009 37.85
1008 39.4
1009 38.7
1013 21.3185
1014 7.15
1015 38.55
1016 37.85
1015 39.4
1016 38.7
1003
0
0
......@@ -20271,7 +20585,7 @@ pwr_exe:
2802 7.15
2803 0
2804 1
2805 37.85
2805 38.7
2806 0
99
2716 0
......@@ -20285,7 +20599,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -20356,12 +20672,12 @@ pwr_exe:
0
1006 22.65
1007 22.05
1008 38.55
1009 37.9
1008 39.4
1009 38.75
1013 22.65
1014 22.05
1015 38.55
1016 37.9
1015 39.4
1016 38.75
1003
0
0
......@@ -20403,7 +20719,7 @@ pwr_exe:
2802 21.9
2803 0
2804 1
2805 37.8
2805 38.65
2806 0
99
2716 0
......@@ -20417,7 +20733,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -20485,12 +20803,12 @@ pwr_exe:
0
1006 40.0598
1007 22.8
1008 38.55
1009 37.85
1008 39.4
1009 38.7
1013 40.0598
1014 22.8
1015 38.55
1016 37.85
1015 39.4
1016 38.7
1003
0
0
......@@ -20532,7 +20850,7 @@ pwr_exe:
2802 22.8
2803 0
2804 1
2805 37.85
2805 38.7
2806 0
99
2716 0
......@@ -20546,7 +20864,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -20617,12 +20937,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 31.5124
1009 30.7066
1008 32.3624
1009 31.5566
1013 6.065
1014 0.95
1015 31.5124
1016 30.7066
1015 32.3624
1016 31.5566
1003
0
0
......@@ -20664,7 +20984,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 30.517
2805 31.367
2806 0
99
2716 0
......@@ -20678,7 +20998,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -20752,12 +21074,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 32.301
1009 31.4952
1008 33.151
1009 32.3452
1013 6.065
1014 0.95
1015 32.301
1016 31.4952
1015 33.151
1016 32.3452
1003
0
0
......@@ -20799,7 +21121,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 31.3056
2805 32.1556
2806 0
99
2716 0
......@@ -20813,7 +21135,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -20887,12 +21211,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 33.0895
1009 32.2837
1008 33.9395
1009 33.1337
1013 6.065
1014 0.95
1015 33.0895
1016 32.2837
1015 33.9395
1016 33.1337
1003
0
0
......@@ -20934,7 +21258,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 32.0941
2805 32.9441
2806 0
99
2716 0
......@@ -20948,7 +21272,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21022,12 +21348,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 33.8781
1009 33.0723
1008 34.7281
1009 33.9223
1013 6.065
1014 0.95
1015 33.8781
1016 33.0723
1015 34.7281
1016 33.9223
1003
0
0
......@@ -21069,7 +21395,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 32.8827
2805 33.7327
2806 0
99
2716 0
......@@ -21083,7 +21409,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21157,12 +21485,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 34.6666
1009 33.8608
1008 35.5166
1009 34.7108
1013 6.065
1014 0.95
1015 34.6666
1016 33.8608
1015 35.5166
1016 34.7108
1003
0
0
......@@ -21204,7 +21532,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 33.6712
2805 34.5212
2806 0
99
2716 0
......@@ -21218,7 +21546,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21292,12 +21622,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 35.4552
1009 34.6494
1008 36.3052
1009 35.4994
1013 6.065
1014 0.95
1015 35.4552
1016 34.6494
1015 36.3052
1016 35.4994
1003
0
0
......@@ -21339,7 +21669,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 34.4598
2805 35.3098
2806 0
99
2716 0
......@@ -21353,7 +21683,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21427,12 +21759,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 36.2438
1009 35.438
1008 37.0938
1009 36.288
1013 6.065
1014 0.95
1015 36.2438
1016 35.438
1015 37.0938
1016 36.288
1003
0
0
......@@ -21474,7 +21806,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 35.2484
2805 36.0984
2806 0
99
2716 0
......@@ -21488,7 +21820,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21562,12 +21896,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 37.0323
1009 36.2265
1008 37.8823
1009 37.0765
1013 6.065
1014 0.95
1015 37.0323
1016 36.2265
1015 37.8823
1016 37.0765
1003
0
0
......@@ -21609,7 +21943,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 36.0369
2805 36.8869
2806 0
99
2716 0
......@@ -21623,7 +21957,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21697,12 +22033,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 37.8209
1009 37.0151
1008 38.6709
1009 37.8651
1013 6.065
1014 0.95
1015 37.8209
1016 37.0151
1015 38.6709
1016 37.8651
1003
0
0
......@@ -21744,7 +22080,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 36.8255
2805 37.6755
2806 0
99
2716 0
......@@ -21758,7 +22094,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -21832,12 +22170,12 @@ pwr_exe:
0
1006 6.065
1007 0.95
1008 38.6094
1009 37.8036
1008 39.4594
1009 38.6536
1013 6.065
1014 0.95
1015 38.6094
1016 37.8036
1015 39.4594
1016 38.6536
1003
0
0
......@@ -21879,7 +22217,7 @@ pwr_exe:
2802 0.485
2803 0
2804 0.948008
2805 37.614
2805 38.464
2806 0
99
2716 0
......@@ -21893,7 +22231,9 @@ pwr_exe:
2721
1
100 1024
105 0
101 64
106 0
102 65535
103 0
12
......@@ -22030,7 +22370,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -22141,7 +22483,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -22161,6 +22505,7 @@ pwr_exe:
319 0
320 0
328 984
332 0
99
99
99
......@@ -22168,8 +22513,8 @@ pwr_exe:
3004 O375
3000 5.05
3001 1.1
3002 30.4605
3003 29.8605
3002 31.3105
3003 30.7105
3008 103
3010 4
3011 2
......@@ -22194,7 +22539,7 @@ pwr_exe:
2802 -1.249e-16
2803 0
2804 1
2805 27.8605
2805 28.7105
2806 0
99
99
......@@ -22202,8 +22547,8 @@ pwr_exe:
2004 O376
2000 40.45
2001 0.7
2002 30.5
2003 30.5
2002 31.35
2003 31.35
2009 33
2010 0
2005
......@@ -22228,7 +22573,7 @@ pwr_exe:
2802 0
2803 0
2804 1
2805 20.15
2805 21
2806 0
99
99
......@@ -22236,8 +22581,8 @@ pwr_exe:
2004 O377
2000 40.45
2001 0.7
2002 29.65
2003 29.65
2002 30.5
2003 30.5
2009 30
2010 0
2005
......@@ -22262,7 +22607,7 @@ pwr_exe:
2802 0
2803 0
2804 1
2805 19.3
2805 20.15
2806 0
99
99
......@@ -22304,8 +22649,8 @@ pwr_exe:
3004 O379
3000 8.7
3001 6.35
3002 30.4605
3003 29.8605
3002 31.3105
3003 30.7105
3008 103
3010 4
3011 2
......@@ -22330,7 +22675,7 @@ pwr_exe:
2802 5.25
2803 0
2804 1
2805 27.8605
2805 28.7105
2806 0
99
99
......@@ -22338,8 +22683,8 @@ pwr_exe:
3004 O380
3000 26.75
3001 22.05
3002 30.4105
3003 29.8105
3002 31.2605
3003 30.6605
3008 103
3010 4
3011 2
......@@ -22364,7 +22709,7 @@ pwr_exe:
2802 20.95
2803 0
2804 1
2805 27.8105
2805 28.6605
2806 0
99
99
......@@ -22490,7 +22835,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -22601,7 +22948,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -22621,6 +22970,7 @@ pwr_exe:
319 0
320 0
328 984
332 0
99
99
99
......@@ -22744,7 +23094,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -22873,7 +23225,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -23005,7 +23359,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -23134,7 +23490,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -23268,7 +23626,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -23379,7 +23739,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -23399,6 +23761,7 @@ pwr_exe:
319 0
320 0
328 31
332 0
99
99
99
......@@ -23524,7 +23887,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -23635,7 +24000,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -23655,6 +24022,7 @@ pwr_exe:
319 0
320 0
328 -1216526136
332 0
99
99
99
......@@ -23780,7 +24148,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -23891,7 +24261,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -23911,6 +24283,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -24034,7 +24407,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -24163,7 +24538,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -24295,7 +24672,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -24424,7 +24803,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -24556,7 +24937,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -24685,7 +25068,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -24817,7 +25202,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -24946,7 +25333,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -25080,7 +25469,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -25191,7 +25582,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -25211,6 +25604,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -25334,7 +25728,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -25463,7 +25859,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -25595,7 +25993,9 @@ pwr_exe:
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
......@@ -25724,7 +26124,9 @@ pwr_exe:
2721
1
100 1
105 0
101 1
106 0
102 65532
103 0
12
......@@ -25858,7 +26260,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -25969,7 +26373,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -25989,6 +26395,7 @@ pwr_exe:
319 0
320 0
328 0
332 0
99
99
99
......@@ -26114,7 +26521,9 @@ pwr_exe:
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
......@@ -26225,7 +26634,9 @@ pwr_exe:
306
307
308 0
330 0
321 0
331 0
309 0
313 0
322 0
......@@ -26245,6 +26656,798 @@ pwr_exe:
319 0
320 0
328 -1152261317
332 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 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 6.95
1007 6.35
1008 29.7
1009 29.05
1013 6.95
1014 6.35
1015 29.7
1016 29.05
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.2
2803 0
2804 1
2805 28.95
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $object.ProcStatus[24]##status
3101 38
99
99
99
27
2703 33
2704 10000
2722 10000
2705 10000
2723 10000
2706 33
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 O427
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 21.3185
1007 7.15
1008 29.7
1009 29
1013 21.3185
1014 7.15
1015 29.7
1016 29
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.532649
2801 0
2802 7.15
2803 0
2804 1
2805 29
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.ProcStatus[24]##status
1201 %1m
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 O428
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 22.65
1007 22.05
1008 29.7
1009 29.05
1013 22.65
1014 22.05
1015 29.7
1016 29.05
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 21.9
2803 0
2804 1
2805 28.95
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
105 0
101 0
106 0
102 65532
103 0
31
3100 $object.ProcMsgSeverity[24]##status
3101 38
99
99
99
27
2703 33
2704 10000
2722 10000
2705 10000
2723 10000
2706 33
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 O429
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.0598
1007 22.8
1008 29.7
1009 29
1013 40.0598
1014 22.8
1015 29.7
1016 29
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.648863
2801 0
2802 22.8
2803 0
2804 1
2805 29
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.ProcMessage[24]##string80
1201 %s
1202 1
1203 1
1204 0
99
99
99
35
3500
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 Grp431_
1002 Grp431_
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.07329
1007 0.949998
1008 29.75
1009 29
1013 6.07329
1014 0.949998
1015 29.75
1016 29
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0
701 0
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 35454972
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 0
105 0
101 66
106 0
102 65535
103 0
50
5000 &$object.ProcObject[24]
99
55
5500 open graph/classgraph/instance=&$object.ProcObject[24]
99
99
99
3501
36
3600
3
300 Grp431_
301
2
19
1904 O387
1900 6.07329
1901 0.949998
1902 29.75
1903 29
1908 0
1909 32
1910 32
1911 1
1915 1
1913 16
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 0
502
7
700 0.95
701 10.6
99
503
7
700 4.5
701 11.35
99
99
1912
28
2800 1.44318
2801 0
2802 -0.421023
2803 0
2804 1
2805 18.4
2806 0
99
99
30
3004 O388
3000 5.20511
3001 1.45511
3002 29.7105
3003 29.1105
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 rt_powerlink
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1.44318
2801 0
2802 -0.132387
2803 0
2804 1
2805 27.1105
2806 0
99
99
99
302 0
304 0
303
305 0
306
307
308 0
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 1072194539
332 0
99
99
99
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment