Commit dac05358 authored by Claes Sjofors's avatar Claes Sjofors

Simulate server implemented

parent e70e755e
......@@ -244,7 +244,8 @@ static pwr_tStatus nmpsbck_write_cells( bck_ctx bckctx,
FILE *bckfile);
static pwr_tStatus nmpsbck_write_data( bck_ctx bckctx,
FILE *bckfile);
static pwr_tStatus nmpsbck_read( bck_ctx bckctx);
static pwr_tStatus nmpsbck_read( bck_ctx bckctx,
char *backupfile);
static pwr_tStatus nmpsbck_cell_handler( bck_ctx bckctx);
static pwr_tStatus nmpsbck_free( bck_ctx bckctx);
......@@ -1626,7 +1627,7 @@ static pwr_tStatus nmpsbck_check_file( bck_ctx bckctx,
*
**************************************************************************/
static pwr_tStatus nmpsbck_read( bck_ctx bckctx)
static pwr_tStatus nmpsbck_read( bck_ctx bckctx, char *backupfile)
{
pwr_tStatus sts;
nmpsbck_t_cellheader cellheader;
......@@ -1668,7 +1669,7 @@ static pwr_tStatus nmpsbck_read( bck_ctx bckctx)
/* Open file 1 */
file_num = 1;
bckfile1_sts = NMPS__SUCCESS;
nmpsbck_get_filename( bckctx->bckconfig->BackupFile,
nmpsbck_get_filename( backupfile,
filename, NMPSBCK_FILE_EXT1);
#if defined(OS_ELN)
......@@ -1697,7 +1698,7 @@ static pwr_tStatus nmpsbck_read( bck_ctx bckctx)
file_num = 2;
bckfile2_sts = NMPS__SUCCESS;
nmpsbck_get_filename( bckctx->bckconfig->BackupFile,
nmpsbck_get_filename( backupfile,
filename, NMPSBCK_FILE_EXT2);
#if defined(OS_ELN)
......@@ -2627,7 +2628,7 @@ static pwr_tStatus nmpsbck_free( bck_ctx bckctx)
return NMPS__SUCCESS;
}
int main()
int main( int argc, char *argv[])
{
bck_ctx bckctx;
pwr_tStatus sts;
......@@ -2644,6 +2645,28 @@ int main()
char mp[2000];
qcom_sGet get;
if ( argc > 2 && strcmp( argv[1], "-l") == 0) {
errh_Init("nmps_bck_load", 0);
sts = gdh_Init("nmps_bck_load");
if (EVEN(sts)) LogAndExit( sts);
bckctx = calloc( 1 , sizeof( *bckctx));
if ( bckctx == 0 ) return NMPS__NOMEMORY;
bckctx->file_num = 1;
sts = nmps_get_bckconfig( bckctx);
if (EVEN(sts)) LogAndExit( sts);
if ( !bckctx->bckconfig->NoRead) {
/* Restore the specified backup file */
sts = nmpsbck_read( bckctx, argv[2]);
}
exit(0);
}
errh_Init("rs_nmps_bck", 0);
if (!qcom_Init(&sts, 0, "rs_nmps_bck")) {
......@@ -2678,7 +2701,7 @@ int main()
if ( !bckctx->bckconfig->NoRead) {
/* Restore the old backup file */
sts = nmpsbck_read( bckctx);
sts = nmpsbck_read( bckctx, bckctx->bckconfig->BackupFile);
}
else {
/* Release the cells by setting backup done flag */
......@@ -2765,6 +2788,12 @@ int main()
else if (new_event.b.swapDone && swap) {
swap = 0;
}
else if (new_event.b.simLoadStart && !swap) {
swap = 1;
}
else if (new_event.b.simLoadDone && swap) {
swap = 0;
}
else if (new_event.b.terminate) {
exit(0);
}
......
......@@ -1981,11 +1981,46 @@ fromEvent (
setTimerActive(cMessageIdx, FALSE);
errh_Info("No supervise objects.");
}
} else if (new_event.b.swapInit & !cur_event.b.swapInit) {
}
else if (new_event.b.swapInit & !cur_event.b.swapInit) {
l.supListState = eSupListState_Wait;
errh_Info("Warm restart initiated.");
handlerEvent(eHEvent_RestartInit, l.head.nix);
} else if (new_event.b.terminate & !cur_event.b.terminate) {
}
else if (new_event.b.simLoadStart & !cur_event.b.simLoadStart) {
LstLink(sOutunit) *ol;
sOutunit *op;
l.supListState = eSupListState_Wait;
handlerEvent(eHEvent_RestartInit, l.head.nix);
for (ol = LstFir(&l.outunit_l); ol != LstEnd(&l.outunit_l); ol = LstNex(ol)) {
op = LstObj(ol);
if (op->syncedIdx == op->eventIdx)
sendToOutunit(op, mh_eMsg_OutunitClear, 0, NULL, 0);
}
printf( "rt_emon: SimLoadStart\n");
}
else if (new_event.b.simLoadDone & !cur_event.b.simLoadDone) {
printf( "rt_emon: SimLoadDone\n");
handlerEvent(eHEvent_RestartComplete, l.head.nix);
reInitSupList();
if (!LstEmp(&l.sup_l)) {
l.supListState = eSupListState_Scan;
setTimerActive(cMessageIdx, TRUE);
if (!LstEmp(&l.detect_l)) {
scanTimerList();
scanDetectList();
setTimerActive(cDetectIdx, TRUE);
}
scanSupList();
} else {
l.supListState = eSupListState_NoSup;
setTimerActive(cMessageIdx, FALSE);
}
}
else if (new_event.b.terminate & !cur_event.b.terminate) {
exit(0);
}
......
include $(pwre_dir_symbols)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(hw_name)/$(type_name)_generic.mk
ifeq ($($(type_name)_generic_mk),)
-include $(pwre_sroot)/tools/bld/src/$(os_name)/$(type_name)_generic.mk
endif
ifeq ($($(type_name)_generic_mk),)
include $(pwre_sroot)/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) $(linkflags) $(domap) -o $(export_exe) \
$(export_obj) $(objects) $(rt_msg_objs) \
$(pwr_obj)/rt_io_user.o\
$(pwre_conf_libdir) $(pwre_conf_libpwrrt) $(pwre_conf_lib)
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 <stddef.h>
#include "pwr.h"
#include "co_cdh.h"
#include "rt_gdh.h"
#include "co_dcli.h"
#include "co_error.h"
#include "rt_aproc.h"
#include "rt_ini_event.h"
#include "rt_plc_timer.h"
#include "pwr_baseclasses.h"
#include "pwr_nmpsclasses.h"
#include "rt_sim.h"
#include "rt_gdh_msg.h"
#include "rt_sim_msg.h"
#include "rt_pwr_msg.h"
#include "rt_qcom_msg.h"
#include "nmps.h"
pwr_tCid cellclass[] = {
pwr_cClass_NMpsCell,
pwr_cClass_NMpsCell60,
pwr_cClass_NMpsCell120,
pwr_cClass_NMpsStoreCell,
pwr_cClass_NMpsStoreCell60,
pwr_cClass_NMpsStoreCell120,
0};
pwr_tStatus rt_sim::print_object( FILE *fp, pwr_tOid oid)
{
pwr_tStatus sts;
pwr_tOid child;
pwr_tTid tid;
char *ap;
pwr_tAttrRef aref = cdh_ObjidToAref( oid);
pwr_tAName aname = "";
pwr_tOName oname;
pwr_tObjName cname;
gdh_sVolumeInfo info;
pwr_tCid skip_cid[] = {
pwr_eClass_Node, pwr_cClass_PlcProcess, pwr_cClass_PlcThread, 0};
int skip;
sts = gdh_GetAttrRefTid( &aref, &tid);
if ( EVEN(sts)) return sts;
skip = 0;
for ( int i = 0; skip_cid[i]; i++) {
if ( tid == skip_cid[i]) {
skip = 1;
break;
}
}
if ( !skip) {
sts = gdh_ObjidToName( oid, oname, sizeof(oname), cdh_mName_volumeStrict);
if ( EVEN(sts)) return sts;
sts = gdh_GetVolumeInfo( oid.vid, &info);
if ( EVEN(sts)) return sts;
fprintf( fp, "// %s\n", oname);
if ( info.cid == pwr_eClass_DynamicVolume) {
sts = gdh_ObjidToName( cdh_ClassIdToObjid(tid), cname, sizeof(cname),
cdh_mName_object);
if ( EVEN(sts)) throw co_error(sts);
fprintf( fp, "<dynamicname> %s %s\n", oname, cname);
}
else if ( info.cid == pwr_eClass_SystemVolume) {
fprintf( fp, "<oname> %s\n", oname);
}
else {
fprintf( fp, "<oid> %s\n", cdh_ObjidToString( 0, oid, 1));
}
sts = gdh_GetObjectSize( oid, &aref.Size);
if ( EVEN(sts)) return sts;
ap = (char *) calloc( 1, aref.Size);
if ( !ap) return GDH__INSVIRMEM;
sts = gdh_GetObjectInfoAttrref( &aref, ap, aref.Size);
if ( EVEN(sts)) return sts;
gdh_FWriteObjectR( fp, ap, aname, &aref, tid);
}
for ( sts = gdh_GetChild( oid, &child); ODD(sts); sts = gdh_GetNextSibling( child, &child)) {
print_object( fp, child);
}
return 1;
}
pwr_tStatus rt_sim::load()
{
char *ap = 0;
pwr_tStatus sts;
pwr_tTid tid;
char line[512];
char line_elem[2][512];
int nr;
pwr_tTypeId a_tid;
unsigned int a_size;
unsigned int a_offs;
unsigned int a_elem;
char buffer[512];
pwr_tAttrRef aref;
int line_cnt = 0;
pwr_tAttrRef oaref;
pwr_tFileName fname;
pwr_tOid oid;
FILE *fp;
dcli_trim( fname, conf->LoadFile);
dcli_translate_filename( fname, fname);
fp = fopen( fname, "r");
if ( !fp)
return SIM__FILE;
while ( dcli_read_line( line, sizeof(line), fp)) {
line_cnt++;
dcli_trim( line, line);
if ( strcmp( line, "") == 0 ||
line[0] == '#' ||
(line[0] == '/' && line[1] == '/'))
continue;
if ( strncmp( line, "<oid> ", 6) == 0) {
sts = cdh_StringToObjid( &line[6], &oid);
if ( EVEN(sts)) {
printf( "** Objid syntax error, line %d\n", line_cnt);
ap = 0;
continue;
}
oaref = cdh_ObjidToAref( oid);
sts = gdh_GetAttrRefTid( &oaref, &tid);
if ( EVEN(sts)) {
printf( "** Object not found %s, line %d\n", &line[6], line_cnt);
ap = 0;
continue;
}
if ( !cdh_tidIsCid(tid))
return GDH__NOOBJECT;
if ( tid == pwr_eClass_Security ||
tid == pwr_eClass_System ||
tid == pwr_cClass_SimulateConfig) {
ap = 0;
continue;
}
sts = gdh_AttrRefToPointer( &oaref, (void **)&ap);
if ( EVEN(sts)) {
printf( "** Unable to link to object %s, line %d\n", &line[6], line_cnt);
ap = 0;
continue;
}
}
else if ( strncmp( line, "<oname> ", 8) == 0) {
sts = gdh_NameToObjid( &line[8], &oid);
if ( EVEN(sts)) {
printf( "** Object not found, line %d\n", line_cnt);
ap = 0;
continue;
}
oaref = cdh_ObjidToAref( oid);
sts = gdh_GetAttrRefTid( &oaref, &tid);
if ( EVEN(sts)) {
printf( "** Object not found %s, line %d\n", &line[8], line_cnt);
ap = 0;
continue;
}
if ( !cdh_tidIsCid(tid))
return GDH__NOOBJECT;
if ( tid == pwr_eClass_Security ||
tid == pwr_eClass_System ||
tid == pwr_cClass_SimulateConfig) {
ap = 0;
continue;
}
sts = gdh_AttrRefToPointer( &oaref, (void **)&ap);
if ( EVEN(sts)) {
printf( "** Unable to link to object %s, line %d\n", &line[8], line_cnt);
ap = 0;
continue;
}
}
else if ( strncmp( line, "<dynamicname> ", 14) == 0) {
nr = dcli_parse( line, " ", "",
(char *) line_elem, sizeof( line_elem)/sizeof( line_elem[0]),
sizeof( line_elem[0]), 1);
if ( nr != 3)
continue;
sts = gdh_ClassNameToId( line_elem[2], &tid);
if ( EVEN(sts)) {
printf( "** Unable to find object class %s, line %d\n", line_elem[1], line_cnt);
ap = 0;
continue;
}
sts = gdh_CreateObject( line_elem[1], tid, 0, &oid, pwr_cNOid, 0, pwr_cNOid);
if ( EVEN(sts)) {
// Object exist, link to object
sts = gdh_NameToObjid( line_elem[1], &oid);
if ( EVEN(sts)) {
printf( "** Object not found, line %d\n", line_cnt);
ap = 0;
continue;
}
oaref = cdh_ObjidToAref( oid);
sts = gdh_GetAttrRefTid( &oaref, &tid);
if ( EVEN(sts)) {
printf( "** Object not found %s, line %d\n", line_elem[1], line_cnt);
ap = 0;
continue;
}
if ( !cdh_tidIsCid(tid))
return GDH__NOOBJECT;
}
sts = gdh_AttrRefToPointer( &oaref, (void **)&ap);
if ( EVEN(sts)) {
printf( "** Unable to link to object %s, line %d\n", line_elem[1], line_cnt);
ap = 0;
continue;
}
}
else {
if ( !ap)
continue;
nr = dcli_parse( line, " ", "",
(char *) line_elem, sizeof( line_elem)/sizeof( line_elem[0]),
sizeof( line_elem[0]), 1);
if ( nr != 2)
continue;
sts = gdh_ArefANameToAref( &oaref, line_elem[0], &aref);
if ( EVEN(sts)) continue;
sts = gdh_GetAttributeCharAttrref( &aref, &a_tid, &a_size, &a_offs, &a_elem);
if ( EVEN(sts)) continue;
switch ( a_tid) {
case pwr_eType_String:
case pwr_eType_Text:
case pwr_eType_Objid:
case pwr_eType_AttrRef:
case pwr_eType_ClassId:
case pwr_eType_TypeId:
case pwr_eType_CastId:
if ( line_elem[1][0] == '"' && line_elem[1][strlen(line_elem[1]) - 1] == '"') {
line_elem[1][strlen(line_elem[1]) - 1] = 0;
sts = gdh_AttrStringToValue( a_tid, &line_elem[1][1], buffer, sizeof(buffer),
a_size);
}
else
sts = gdh_AttrStringToValue( a_tid, line_elem[1], buffer, sizeof(buffer),
a_size);
break;
default:
sts = gdh_AttrStringToValue( a_tid, line_elem[1], buffer, sizeof(buffer),
a_size);
}
if ( EVEN(sts)) continue;
sts = gdh_SetObjectInfoAttrref( &aref, buffer, a_size);
}
}
fclose( fp);
return SIM__SUCCESS;
}
pwr_tStatus rt_sim::store()
{
pwr_tFileName fname;
pwr_tStatus sts;
pwr_tOid oid;
FILE *fp;
dcli_trim( conf->LoadFile, conf->LoadFile);
if ( strchr( conf->LoadFile, '.') == 0)
strcat( conf->LoadFile, ".rtdbs");
dcli_translate_filename( fname, conf->LoadFile);
fp = fopen( fname, "w");
if ( !fp) {
printf( "Unable to open file %s\n", fname);
return SIM__FILE;
}
for ( sts = gdh_GetRootList( &oid); ODD(sts); sts = gdh_GetNextSibling( oid, &oid)) {
sts = print_object( fp, oid);
if ( EVEN(sts)) return sts;
}
fclose( fp);
store_nmps();
return SIM__SUCCESS;
}
void rt_sim::init( qcom_sQid *qid)
{
qcom_sQid qini;
qcom_sQattr qAttr;
pwr_tStatus sts;
sts = gdh_Init("rt_sim");
if ( EVEN(sts)) {
errh_Fatal( "gdh_Init, %m", sts);
exit(sts);
}
errh_Init("pwr_sim", errh_eAnix_sim);
errh_SetStatus( PWR__SRVSTARTUP);
if (!qcom_Init(&sts, 0, "pwr_sim")) {
errh_Fatal("qcom_Init, %m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(sts);
}
qAttr.type = qcom_eQtype_private;
qAttr.quota = 100;
if (!qcom_CreateQ(&sts, qid, &qAttr, "events")) {
errh_Fatal("qcom_CreateQ, %m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(sts);
}
qini = qcom_cQini;
if (!qcom_Bind(&sts, qid, &qini)) {
errh_Fatal("qcom_Bind(Qini), %m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(-1);
}
}
void rt_sim::clear_timers()
{
for ( unsigned int i = 0; i < thread_cnt; i++) {
void *cp, *next;
cp = RELPTR(threadp[i]->TimerStart);
threadp[i]->TimerStart = 0;
while( cp) {
next = RELPTR(((plc_sTimer *)cp)->TimerNext);
((plc_sTimer *)cp)->TimerNext = 0;
cp = next;
}
}
}
typedef struct {
pwr_tCid cid;
unsigned int timer_offset;
} sim_sTimerObject;
void rt_sim::restore_timers( int thread_idx, pwr_tOid oid)
{
pwr_tStatus sts;
pwr_tOid child;
pwr_tCid cid;
char *op;
plc_sTimer *timerp;
sim_sTimerObject tlist[] = {
{pwr_cClass_ASup, offsetof(pwr_sClass_ASup, TimerFlag)},
{pwr_cClass_dorder, offsetof(pwr_sClass_dorder, TimerFlag)},
{pwr_cClass_drive, offsetof(pwr_sClass_drive, TimerFlag)},
{pwr_cClass_DSup, offsetof(pwr_sClass_DSup, TimerFlag)},
{pwr_cClass_inc3p, offsetof(pwr_sClass_inc3p, TimerFlag)},
{pwr_cClass_lorder, offsetof(pwr_sClass_lorder, TimerFlag)},
{pwr_cClass_mvalve, offsetof(pwr_sClass_mvalve, TimerFlag)},
{pwr_cClass_pos3p, offsetof(pwr_sClass_pos3p, TimerFlag)},
{pwr_cClass_posit, offsetof(pwr_sClass_posit, TimerFlag)},
{pwr_cClass_pulse, offsetof(pwr_sClass_pulse, TimerFlag)},
{pwr_cClass_timer, offsetof(pwr_sClass_timer, TimerFlag)},
{pwr_cClass_valve, offsetof(pwr_sClass_valve, TimerFlag)},
{pwr_cClass_waith, offsetof(pwr_sClass_waith, TimerFlag)},
{pwr_cClass_wait, offsetof(pwr_sClass_wait, TimerFlag)},
{0,0}};
sts = gdh_GetObjectClass( oid, &cid);
if ( EVEN(sts)) throw co_error(sts);
// If activated timer, insert object in thread timerlist
for ( unsigned int i = 0; tlist[i].cid != 0; i++) {
if ( cid == tlist[i].cid) {
sts = gdh_ObjidToPointer( oid, (void **)&op);
if ( EVEN(sts)) throw co_error(sts);
timerp = (plc_sTimer *)(op + tlist[i].timer_offset);
if ( timerp->TimerFlag) {
if ( timerp->TimerCount > 0) {
timerp->TimerNext = threadp[thread_idx]->TimerStart;
PTRREL(&threadp[thread_idx]->TimerStart, &timerp->TimerFlag);
}
else
((plc_sTimer *)(op + tlist[i].timer_offset))->TimerFlag = 0;
}
break;
}
}
// Examine children
for ( sts = gdh_GetChild( oid, &child);
ODD(sts);
sts = gdh_GetNextSibling( child, &child)) {
restore_timers( thread_idx, child);
}
}
void rt_sim::restore_timers()
{
pwr_sClass_plc *plcp;
pwr_tOid plcoid;
pwr_tStatus sts;
for ( unsigned int i = 0; i < thread_cnt; i++) {
// Find all PlcPgm for this thread
for ( sts = gdh_GetClassList( pwr_cClass_plc, &plcoid);
ODD(sts);
sts = gdh_GetNextObject( plcoid, &plcoid)) {
sts = gdh_ObjidToPointer( plcoid, (void **)&plcp);
if ( EVEN(sts)) throw co_error(sts);
if ( cdh_ObjidIsEqual( plcp->ThreadObject, conf->PlcThreads[i]))
restore_timers( i, plcoid);
}
}
}
void rt_sim::delete_children( pwr_tOid oid)
{
pwr_tStatus sts;
pwr_tOid coid, next;
int last = 0;
for ( sts = gdh_GetChild( oid, &coid); ODD(sts); ) {
sts = gdh_GetNextSibling( coid, &next);
if ( EVEN(sts))
last = 1;
delete_children( coid);
sts = gdh_DeleteObject( coid);
if ( EVEN(sts)) throw co_error(sts);
if ( last)
break;
coid = next;
}
}
void rt_sim::clear_nmps( sim_eNMpsClear mode)
{
pwr_tStatus sts;
pwr_tVid vid;
gdh_sVolumeInfo info;
pwr_tOid oid;
// Unref and remove all data objects in NMps cells
for ( int i = 0; cellclass[i]; i++) {
for ( sts = gdh_GetClassList( cellclass[i], &oid);
ODD(sts);
sts = gdh_GetNextObject( oid, &oid)) {
pwr_sClass_NMpsCell *cellp;
plc_t_DataInfo *dip;
sts = gdh_ObjidToPointer( oid, (void **)&cellp);
if ( EVEN(sts)) throw co_error(sts);
if ( mode == sim_eNMpsClear_NoBackup &&
cellp->Function & NMPS_CELLFUNC_BACKUP)
continue;
dip = (plc_t_DataInfo *)&cellp->Data1P;
for ( int i = 0; i < cellp->LastIndex; i++) {
gdh_UnrefObjectInfo( dip->Data_Dlid);
memset( dip, 0, sizeof(*dip));
dip++;
}
dip = (plc_t_DataInfo *)&cellp->DataLP;
memset( dip, 0, sizeof(*dip));
dip = (plc_t_DataInfo *)&cellp->DataLastP;
memset( dip, 0, sizeof(*dip));
cellp->LastIndex = 0;
cellp->NumberOfData = 0;
}
}
// Remove all dynamic objects
for ( sts = gdh_GetVolumeList( &vid);
ODD(sts);
sts = gdh_GetNextVolume( vid, &vid)) {
sts = gdh_GetVolumeInfo( vid, &info);
if ( EVEN(sts)) throw co_error(sts);
if ( info.cid == pwr_eClass_DynamicVolume) {
oid.oix = 0;
oid.vid = vid;
delete_children( oid);
}
}
}
void rt_sim::store_nmps()
{
pwr_tStatus sts;
pwr_tOid oid;
int backup_found = 0;
for ( int i = 0; cellclass[i]; i++) {
for ( sts = gdh_GetClassList( cellclass[i], &oid);
ODD(sts);
sts = gdh_GetNextObject( oid, &oid)) {
pwr_sClass_NMpsCell *cellp;
sts = gdh_ObjidToPointer( oid, (void **)&cellp);
if ( EVEN(sts)) throw co_error(sts);
if ( cellp->Function & NMPS_CELLFUNC_BACKUP)
backup_found = 1;
}
}
if ( backup_found) {
// Copy nmps backup files
sts = gdh_GetClassList( pwr_cClass_NMpsBackupConfig, &oid);
if ( ODD(sts)) {
pwr_sClass_NMpsBackupConfig *bckp;
pwr_tCmd cmd;
pwr_tFileName fname;
char *s;
sts = gdh_ObjidToPointer( oid, (void **)&bckp);
if ( EVEN(sts)) throw co_error(sts);
strcpy( fname, conf->LoadFile);
if ( (s = strrchr( fname, '.')))
*s = 0;
strcat( fname, "_nmpsbck");
sprintf( cmd, "cp %s1 %s.bck1;cp %s2 %s.bck2", bckp->BackupFile, fname,
bckp->BackupFile, fname);
system( cmd);
}
}
}
void rt_sim::load_nmps()
{
pwr_tCmd cmd;
pwr_tFileName fname;
char *s;
strcpy( fname, conf->LoadFile);
if ( (s = strrchr( fname, '.')))
*s = 0;
strcat( fname, "_nmpsbck");
sprintf( cmd, "rs_nmps_bck -l %s", fname);
system( cmd);
}
void rt_sim::scan()
{
pwr_tStatus sts;
// Set PlcPgm thread and plcpgm status
for ( unsigned int i = 0; i < plcpgm_cnt; i++) {
conf->PlcPgmThreadStatus[i] = conf->ThreadStatus[plcpgm_thread_idx[i]];
conf->PlcPgmStatus[i] = windowplcp[i]->ScanOff ? SIM__SCANOFF : SIM__SCANON;
}
if ( conf->Disable) {
if ( conf->PlcHalt)
conf->PlcHalt = 0;
if ( conf->PlcContinue)
conf->PlcContinue = 0;
if ( conf->PlcStep)
conf->PlcStep = 0;
if ( conf->Load)
conf->Load = 0;
if ( conf->Store)
conf->Store = 0;
if ( conf->PlcPgmScanOff)
conf->PlcPgmScanOff = 0;
if ( conf->PlcPgmScanOn)
conf->PlcPgmScanOn = 0;
if ( !disable_old) {
// Set running status on all threads
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadStatus[i] == SIM__THREAD_HALT)
conf->ThreadStatus[i] = SIM__THREAD_RUNNING;
}
// Set scan on of plcpgm
for ( unsigned int i = 0; i < plcpgm_cnt; i++) {
if ( plcpgm_scanoff_set[i]) {
windowplcp[i]->ScanOff = 0;
plcpgm_scanoff_set[i] = 0;
}
}
conf->PlcHaltOrder = 0;
conf->PlcStepOrder = 0;
conf->PlcContinueOrder = 0;
conf->PlcLoadOrder = 0;
}
disable_old = conf->Disable;
conf->Message = SIM__DISABLED;
return;
}
if ( !conf->Disable && disable_old)
conf->Message = SIM__ACTIVE;
disable_old = conf->Disable;
// Select all threads request
if ( conf->SelectAllThreads) {
conf->SelectAllThreads = 0;
for ( unsigned int i = 0; i < thread_cnt; i++)
conf->ThreadSelected[i] = 1;
}
// Clear all threads request
if ( conf->ClearAllThreads) {
conf->ClearAllThreads = 0;
for ( unsigned int i = 0; i < thread_cnt; i++)
conf->ThreadSelected[i] = 0;
}
// Select all plcpgm request
if ( conf->SelectAllPlcPgm) {
conf->SelectAllPlcPgm = 0;
for ( unsigned int i = 0; i < plcpgm_cnt; i++)
conf->PlcPgmSelected[i] = 1;
}
// Clear all plcpgm request
if ( conf->ClearAllPlcPgm) {
conf->ClearAllPlcPgm = 0;
for ( unsigned int i = 0; i < plcpgm_cnt; i++)
conf->PlcPgmSelected[i] = 0;
}
// Plc halt request
if ( conf->PlcHalt) {
conf->PlcHalt = 0;
conf->PlcContinueStatus = 0;
// Count selected threads in running state
select_thread_cnt = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadSelected[i] && conf->ThreadStatus[i] == SIM__THREAD_RUNNING)
select_thread_cnt++;
}
if ( select_thread_cnt > 0) {
conf->PlcHaltOrder = select_thread_cnt;
halt_order_active = true;
conf->PlcHaltStatus = SIM__THREADRESPOND;
conf->Message = SIM__THREADRESPOND;
}
else {
conf->PlcHaltStatus = SIM__NORUNNING;
conf->Message = SIM__NORUNNING;
}
}
if ( halt_order_active) {
if ( conf->PlcHaltOrder == 0) {
conf->PlcHaltStatus = SIM__SUCCESS;
conf->Message = SIM__HALTED;
halt_order_active = false;
}
}
// Plc continue request
if ( conf->PlcContinue) {
conf->PlcContinue = 0;
conf->PlcHaltStatus = 0;
// Count selected threads
select_thread_cnt = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadSelected[i] && conf->ThreadStatus[i] == SIM__THREAD_HALT)
select_thread_cnt++;
}
if ( select_thread_cnt > 0) {
conf->PlcContinueOrder = select_thread_cnt;
continue_order_active = true;
conf->Message = SIM__THREADRESPOND;
}
else {
conf->Message = SIM__NOHALTED;
}
}
if ( continue_order_active) {
if ( conf->PlcContinueOrder == 0) {
continue_order_active = false;
conf->Message = SIM__CONTINUED;
}
}
// Plc step request
if ( conf->PlcStep) {
conf->PlcStep = 0;
// Count selected threads
select_thread_cnt = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadSelected[i] && conf->ThreadStatus[i] == SIM__THREAD_HALT)
select_thread_cnt++;
}
if ( select_thread_cnt > 0) {
conf->PlcStepOrder = select_thread_cnt;
step_order_active = true;
conf->Message = SIM__THREADRESPOND;
}
else {
conf->Message = SIM__NOHALTED;
}
}
if ( step_order_active) {
if ( conf->PlcStepOrder == 0) {
step_order_active = false;
conf->Message = SIM__STEPPED;
}
}
// Load database request
if ( conf->Load) {
conf->Load = 0;
// Check that all thread are halted
int not_halted = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadStatus[i] != SIM__THREAD_HALT) {
not_halted = 1;
break;
}
}
if ( not_halted) {
conf->Message = SIM__NOTALLHALTED;
}
else {
conf->Message = SIM__LOADING;
qcom_SignalOr(&sts, &qcom_cQini, ini_mEvent_simLoadStart);
// Clear plc thread timer lists
clear_timers();
clear_nmps( sim_eNMpsClear_All);
load();
clear_nmps( sim_eNMpsClear_NoBackup);
// Restore timers
restore_timers();
load_nmps();
qcom_SignalAnd(&sts, &qcom_cQini, ~ini_mEvent_simLoadStart);
qcom_SignalOr(&sts, &qcom_cQini, ini_mEvent_simLoadDone);
// Plc load request
conf->PlcLoadOrder = thread_cnt;
load_order_active = true;
conf->Message = SIM__THREADRESPOND;
qcom_SignalAnd(&sts, &qcom_cQini, ~ini_mEvent_simLoadDone);
}
}
if ( load_order_active) {
if ( conf->PlcLoadOrder == 0) {
load_order_active = false;
conf->Message = SIM__LOADED;
}
}
if ( conf->Store) {
conf->Store = 0;
// Check that all thread are halted
int not_halted = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( conf->ThreadStatus[i] != SIM__THREAD_HALT) {
not_halted = 1;
break;
}
}
if ( not_halted) {
conf->Message = SIM__NOTALLHALTED;
}
else {
conf->Message = SIM__STORING;
store();
conf->Message = SIM__STORED;
}
}
// PlcPgm scan on request
if ( conf->PlcPgmScanOn) {
conf->PlcPgmScanOn = 0;
int found = 0;
for ( unsigned int i = 0; i < plcpgm_cnt; i++) {
if ( conf->PlcPgmSelected[i]) {
windowplcp[i]->ScanOff = 0;
conf->PlcPgmStatus[i] = SIM__SCANON;
plcpgm_scanoff_set[i] = 0;
found = 1;
}
}
if ( found)
conf->Message = SIM__SCANON_SET;
else
conf->Message = SIM__NOSELPLCPGM;
}
// PlcPgm scan off request
if ( conf->PlcPgmScanOff) {
conf->PlcPgmScanOff = 0;
int found = 0;
for ( unsigned int i = 0; i < plcpgm_cnt; i++) {
if ( conf->PlcPgmSelected[i]) {
windowplcp[i]->ScanOff = 1;
conf->PlcPgmStatus[i] = SIM__SCANOFF;
plcpgm_scanoff_set[i] = 1;
found = 1;
}
}
if ( found)
conf->Message = SIM__SCANOFF_SET;
else
conf->Message = SIM__NOSELPLCPGM;
}
}
void rt_sim::close()
{
}
void rt_sim::open()
{
pwr_tStatus sts;
pwr_tOid oid;
pwr_tOid child;
pwr_tCid cid;
pwr_tAttrRef aref, taref;
pwr_tOid thread_oid;
// Find server configuration object SimulateConfig
sts = gdh_GetClassList( pwr_cClass_SimulateConfig, &oid);
if ( ODD(sts)) {
sts = gdh_ObjidToPointer( oid, (void **)&conf);
if ( EVEN(sts)) throw co_error( sts);
aproc_RegisterObject( oid);
}
else {
errh_Info( "No Simulate configuration");
errh_SetStatus( 0);
exit(0);
}
// Get all plc threads and insert into array
thread_cnt = 0;
for ( sts = gdh_GetClassList( pwr_cClass_PlcThread, &oid);
ODD(sts);
sts = gdh_GetNextObject( oid, &oid)) {
conf->PlcThreads[thread_cnt] = oid;
conf->ThreadSelected[thread_cnt] = 1;
pwr_tAttrRef aref = cdh_ObjidToAref( oid);
sts = gdh_DLRefObjectInfoAttrref( &aref, (void **)&threadp[thread_cnt], &thread_dlid[thread_cnt]);
if ( EVEN(sts)) {
errh_Fatal( "Unable to link to plc thread object, %m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(0);
}
thread_cnt++;
if ( thread_cnt >= sizeof(conf->PlcThreads)/sizeof(conf->PlcThreads[0]))
break;
}
// Get all plcpgm and insert into array
plcpgm_cnt = 0;
for ( sts = gdh_GetClassList( pwr_cClass_plc, &oid);
ODD(sts);
sts = gdh_GetNextObject( oid, &oid)) {
conf->PlcPgm[plcpgm_cnt] = oid;
conf->PlcPgmSelected[plcpgm_cnt] = 1;
int found = 0;
for ( sts = gdh_GetChild( oid, &child);
ODD(sts);
sts = gdh_GetNextSibling( child, &child)) {
sts = gdh_GetObjectClass( child, &cid);
if ( cid == pwr_cClass_windowplc) {
pwr_tAttrRef aref = cdh_ObjidToAref( child);
sts = gdh_DLRefObjectInfoAttrref( &aref, (void **)&windowplcp[plcpgm_cnt], &windowplc_dlid[plcpgm_cnt]);
if ( EVEN(sts)) {
errh_Fatal( "Unable to link to plc window object, %m", sts);
errh_SetStatus( PWR__SRVTERM);
exit(0);
}
found = 1;
break;
}
}
if ( !found) {
errh_Error( "Unable to find plc window object");
}
aref = cdh_ObjidToAref( oid);
sts = gdh_ArefANameToAref( &aref, "ThreadObject", &taref);
if ( EVEN(sts)) co_error(sts);
sts = gdh_GetObjectInfoAttrref( &taref, &thread_oid, sizeof(thread_oid));
if ( EVEN(sts)) {
errh_Error( "No valid thread object in PlcPgm");
continue;
}
found = 0;
for ( unsigned int i = 0; i < thread_cnt; i++) {
if ( cdh_ObjidIsEqual( thread_oid, conf->PlcThreads[i])) {
plcpgm_thread_idx[plcpgm_cnt] = i;
found = 1;
break;
}
}
if ( !found)
continue;
plcpgm_cnt++;
if ( plcpgm_cnt >= sizeof(conf->PlcPgm)/sizeof(conf->PlcPgm[0]))
break;
}
conf->Status = PWR__SRUN;
conf->InitDone = 1;
disable_old = conf->Disable;
}
int main( int argc, char *argv[])
{
pwr_tStatus sts;
int tmo;
char mp[2000];
qcom_sQid qid = qcom_cNQid;
qcom_sGet get;
int swap = 0;
bool first_scan = true;
rt_sim *sim;
sim = new rt_sim();
sim->init( &qid);
try {
sim->open();
}
catch ( co_error& e) {
errh_Error( (char *)e.what().c_str());
errh_Fatal( "rt_sim aborting");
errh_SetStatus( PWR__SRVTERM);
exit(0);
}
aproc_TimeStamp(sim->scantime(), 10);
errh_SetStatus( PWR__SRUN);
first_scan = true;
for (;;) {
if ( first_scan) {
tmo = (int) (sim->scantime() * 1000 - 1);
}
get.maxSize = sizeof(mp);
get.data = mp;
qcom_Get( &sts, &qid, &get, tmo);
if (sts == QCOM__TMO || sts == QCOM__QEMPTY) {
if ( !swap)
sim->scan();
}
else {
ini_mEvent new_event;
qcom_sEvent *ep = (qcom_sEvent*) get.data;
new_event.m = ep->mask;
if (new_event.b.oldPlcStop && !swap) {
errh_SetStatus( PWR__SRVRESTART);
sim->conf->Status = PWR__SRVRESTART;
swap = 1;
sim->close();
} else if (new_event.b.swapDone && swap) {
swap = 0;
sim->open();
errh_SetStatus( PWR__SRUN);
sim->conf->Status = PWR__SRUN;
} else if (new_event.b.terminate) {
exit(0);
}
}
first_scan = false;
}
}
/*
* 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_sim_h
#define rt_sim_h
using namespace std;
#ifndef pwr_h
# include "pwr.h"
#endif
#include "pwr_baseclasses.h"
/*! \file rt_sim.h
\brief Contains the rt_sim class. */
/*! \addtogroup rt */
/*@{*/
typedef enum {
sim_eNMpsClear_All,
sim_eNMpsClear_NoBackup
} sim_eNMpsClear;
class rt_sim {
public:
rt_sim() : scan_time(0.5), thread_cnt(0), select_thread_cnt(0), halt_order_active(false),
load_order_active(false), disable_old(0) {
memset(plcpgm_scanoff_set,0,sizeof(plcpgm_scanoff_set));}
void init( qcom_sQid *qid);
void open();
void close();
void scan();
double scantime() { return scan_time;}
pwr_tStatus print_object( FILE *fp, pwr_tOid oid);
pwr_tStatus store();
pwr_tStatus load();
void clear_timers();
void restore_timers();
void restore_timers( int thread_idx, pwr_tOid oid);
void clear_nmps( sim_eNMpsClear mode);
void store_nmps();
void load_nmps();
void delete_children( pwr_tOid oid);
double scan_time;
pwr_sClass_SimulateConfig *conf;
unsigned int thread_cnt;
pwr_sClass_PlcThread *threadp[30];
pwr_tDlid thread_dlid[30];
unsigned int select_thread_cnt;
unsigned int plcpgm_cnt;
unsigned int plcpgm_thread_idx[200];
pwr_sClass_windowplc *windowplcp[200];
pwr_tDlid windowplc_dlid[200];
int plcpgm_scanoff_set[200];
bool halt_order_active;
bool step_order_active;
bool continue_order_active;
bool load_order_active;
pwr_tBoolean disable_old;
};
/*@}*/
#endif
......@@ -264,7 +264,8 @@ init_process ( char *name)
{
plc_sProcess *pp;
pwr_tStatus sts = PLC__SUCCESS;
pwr_tObjid pp_oid;
pwr_tOid pp_oid;
pwr_tOid sim_oid;
int found;
char busidstr[10];
char pp_name[80];
......@@ -339,6 +340,13 @@ init_process ( char *name)
sts = gdh_ObjidToPointer(pp_oid, (void *)&pp->PlcProcess);
if (EVEN(sts)) return 0;
sts = gdh_GetClassList(pwr_cClass_SimulateConfig, &sim_oid);
if ( ODD(sts)) {
sts = gdh_ObjidToPointer(sim_oid, (void *)&pp->SimConfig);
if (EVEN(sts)) return 0;
}
#if defined OS_VMS
qdb->thread_lock.isThreaded = 1;
qdb->thread_lock.cond_signal = thread_CondSignal;
......
......@@ -123,6 +123,7 @@ typedef enum {
errh_eAnix_post = 21,
errh_eAnix_report = 22,
errh_eAnix_sevhistmon = 23,
errh_eAnix_sim = 24,
errh_eAnix_plc1 = 41,
errh_eAnix_plc2 = 42,
errh_eAnix_plc3 = 43,
......
......@@ -4189,7 +4189,7 @@ pwr_tStatus gdh_ArefDisabled(
}
static pwr_tStatus gdh_FWriteObjectR( FILE *fp, char *ap, char *aname, pwr_tAttrRef *arp,
pwr_tStatus gdh_FWriteObjectR( FILE *fp, char *ap, char *aname, pwr_tAttrRef *arp,
pwr_tCid cid)
{
pwr_tOName name;
......@@ -4647,6 +4647,43 @@ pwr_tStatus gdh_AttrValueToString(
case pwr_eType_Time: {
char timstr[64];
if( format && format[0] == '%' && format[2] == 't') {
switch ( format[1]) {
case '1':
// Format %1t, only time, no hundredth
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_Time,
timstr, sizeof(timstr));
timstr[8] = 0;
break;
case '2':
// Format %2t, only time, with hundredth
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_Time,
timstr, sizeof(timstr));
break;
case '3':
// Format %3t, compressed date and time, no hundredth
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_ComprDateAndTime,
timstr, sizeof(timstr));
timstr[17] = 0;
break;
case '4':
// Format %4t, date only
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_DateAndTime,
timstr, sizeof(timstr));
timstr[11] = 0;
break;
case '5':
// Format %5t, compressed date only
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_ComprDateAndTime,
timstr, sizeof(timstr));
timstr[8] = 0;
break;
default:
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_DateAndTime,
timstr, sizeof(timstr));
}
}
else
sts = time_AtoAscii( (pwr_tTime *) value_ptr, time_eFormat_DateAndTime,
timstr, sizeof(timstr));
if ( EVEN(sts))
......
......@@ -292,6 +292,15 @@ gdh_FReadObject (
pwr_tAttrRef *arp
);
pwr_tStatus
gdh_FWriteObjectR (
FILE *fp,
char *ap,
char *aname,
pwr_tAttrRef *arp,
pwr_tCid cid
);
pwr_tStatus
gdh_FWriteObject (
char *filename,
......
......@@ -53,7 +53,8 @@ typedef union {
pwr_Bits( swapDone , 1),
pwr_Bits( terminate , 1),
pwr_Bits( fill_1 , 2),,
pwr_Bits( simLoadStart , 1),
pwr_Bits( simLoadDone , 1),
pwr_Bits( plcProc1 , 1),
pwr_Bits( plcProc2 , 1),
......@@ -86,9 +87,10 @@ typedef union {
#define ini_mEvent_newPlcStartDone pwr_Bit(5)
#define ini_mEvent_oldPlcStop pwr_Bit(6)
#define ini_mEvent_oldPlcStopDone pwr_Bit(7)
#define ini_mEvent_swapDone pwr_Bit(8)
#define ini_mEvent_terminate pwr_Bit(9)
#define ini_mEvent_simLoadStart pwr_Bit(10)
#define ini_mEvent_simLoadDone pwr_Bit(11)
#define ini_mEvent_plc1 pwr_Bit(12)
#define ini_mEvent_plc2 pwr_Bit(13)
#define ini_mEvent_plc3 pwr_Bit(14)
......
......@@ -148,6 +148,7 @@ enum mh_eMsg {
mh_eMsg_OutunitHello = 19,
mh_eMsg_OutunitInfo = 20,
mh_eMsg_OutunitSync = 21,
mh_eMsg_OutunitClear = 22,
mh_eMsg_ProcDown = 24,
......
......@@ -755,6 +755,11 @@ fromHandler (
if (hp->selGen != l.selGen)
sendInfo(hp);
break;
case mh_eMsg_OutunitClear:
printf( "Clear alarmlist received\n");
if (l.cbClearAlarmList != NULL)
l.cbClearAlarmList(hp->nix);
break;
default:
errh_Warning("Received unhandled messagetype: %d", p->type);
break;
......
......@@ -179,6 +179,11 @@ struct plc_sThread {
pwr_tBoolean first_scan;
int skip_count;
pwr_tBoolean emergency_break_old;
pwr_tBoolean sim_initdone_old;
pwr_tBoolean sim_disable_old;
unsigned int sim_idx;
unsigned int sim_halted;
unsigned int sim_singlestep;
};
struct plc_sProcess {
......@@ -187,6 +192,7 @@ struct plc_sProcess {
pwr_sNode *Node;
pwr_sClass_IOHandler *IOHandler;
pwr_sClass_PlcProcess *PlcProcess;
pwr_sClass_SimulateConfig *SimConfig;
pwr_tFullName nodeName;
qcom_sQid eventQ;
pwr_tOid oid;
......
......@@ -61,6 +61,7 @@
#include "pwr_baseclasses.h"
#include "co_time.h"
#include "co_time_msg.h"
#include "co_cdh.h"
#include "rt_errh.h"
#include "rt_gdh.h"
#include "rt_plc_msg.h"
......@@ -68,6 +69,7 @@
#include "rt_plc.h"
#include "rt_thread.h"
#include "rt_thread_msg.h"
#include "rt_sim_msg.h"
#include "rt_que.h"
#include "rt_io_base.h"
#include "rt_csup.h"
......@@ -219,6 +221,87 @@ plc_thread (
/* Tell main we are done. */
que_Put(&sts, &tp->q_out, &tp->event, (void *)5);
}
static int sim_scan( plc_sThread *tp)
{
pwr_sClass_SimulateConfig *sp = tp->pp->SimConfig;
unsigned int i;
if ( !tp->sim_initdone_old && sp->InitDone) {
/* Identify index in simulate configuration */
for ( i = 0; i < sizeof(sp->PlcThreads)/sizeof(sp->PlcThreads[0]); i++) {
if ( cdh_ObjidIsEqual( tp->aref.Objid, sp->PlcThreads[i])) {
tp->sim_idx = i;
sp->ThreadStatus[i] = tp->sim_halted ? SIM__THREAD_HALT : SIM__THREAD_RUNNING;
break;
}
}
tp->sim_disable_old = sp->Disable;
}
tp->sim_initdone_old = sp->InitDone;
if ( !tp->sim_disable_old && sp->Disable) {
pwr_tTime current;
/* Use nominal scantime as time since last scan */
time_GetTimeMonotonic( &current);
time_Asub( &tp->one_before_scan, &current, &tp->scan_time);
time_GetTime( &current);
time_Asub( &tp->one_before_scan_abs, &current, &tp->scan_time);
tp->sim_disable_old = sp->Disable;
return 0;
}
tp->sim_disable_old = sp->Disable;
if ( sp->PlcHaltOrder && sp->ThreadSelected[tp->sim_idx]) {
if ( !tp->sim_halted) {
tp->sim_halted = 1;
sp->ThreadStatus[tp->sim_idx] = SIM__THREAD_HALT;
sp->PlcHaltOrder--;
}
}
if ( sp->PlcContinueOrder && sp->ThreadSelected[tp->sim_idx]) {
if ( tp->sim_halted) {
pwr_tTime current;
tp->sim_halted = 0;
sp->ThreadStatus[tp->sim_idx] = SIM__THREAD_RUNNING;
sp->PlcContinueOrder--;
/* Use nominal scantime as time since last scan */
time_GetTimeMonotonic( &current);
time_Asub( &tp->one_before_scan, &current, &tp->scan_time);
time_GetTime( &current);
time_Asub( &tp->one_before_scan_abs, &current, &tp->scan_time);
}
}
if ( tp->sim_singlestep && sp->PlcStepOrder == 0)
tp->sim_singlestep = 0;
if ( sp->PlcStepOrder && sp->ThreadSelected[tp->sim_idx] && !tp->sim_singlestep) {
if ( tp->sim_halted) {
pwr_tTime current;
tp->sim_singlestep = 1;
sp->PlcStepOrder--;
/* Use nominal scantime as time since last scan */
time_GetTimeMonotonic( &current);
time_Asub( &tp->one_before_scan, &current, &tp->scan_time);
time_GetTime( &current);
time_Asub( &tp->one_before_scan_abs, &current, &tp->scan_time);
return 0;
}
}
if ( sp->PlcLoadOrder && tp->sim_halted) {
sp->PlcLoadOrder--;
}
return tp->sim_halted;
}
static void
scan (
......@@ -234,6 +317,36 @@ scan (
time_GetTime(&tp->before_scan_abs);
pp->Node->SystemTime = tp->before_scan_abs;
if ( pp->SimConfig) {
if ( !pp->SimConfig->Disable || !tp->sim_disable_old) {
if ( sim_scan( tp)) {
pwr_tDeltaTime delta;
time_GetTimeMonotonic(&tp->after_scan);
time_Aadd(NULL, &tp->sync_time, &tp->scan_time);
time_Adiff(&delta, &tp->sync_time, &tp->after_scan);
if (time_Dcomp(&delta, NULL) > 0) {
#if defined OS_LYNX && USE_RT_TIMER
sem_wait(&tp->ScanSem);
#elif defined OS_MACOS || defined OS_FREEBSD || OS_OPENBSD || OS_CYGWIN
struct timespec ts;
ts.tv_sec = delta.tv_sec;
ts.tv_nsec = delta.tv_nsec;
nanosleep(&ts, NULL);
#else
struct timespec ts;
ts.tv_sec = tp->sync_time.tv_sec;
ts.tv_nsec = tp->sync_time.tv_nsec;
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &ts, NULL);
#endif
}
return;
}
}
else
tp->sim_halted = 0;
}
if (tp->loops > 0) {
/* if (sts == TIME__CLKCHANGE) {
time_Dadd(&tp->before_scan, &tp->one_before_scan, &tp->scan_time);
......
!
! 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.
!
! rt_sev_msg.msg -- <short description>
!
.facility SIM,26 /prefix = SIM__
success <Successful completion> /succ
file <Unable to open file> /error
threadrespond <All threads have not responded yet> /warning
loading <Loading...> /warning
storing <Storing...> /warning
loaded <Database successfully loaded> /info
stored <Database successfully stored> /info
halted <Plc threads halted> /info
continued <Plc threads continued> /info
stepped <Plc threads stepped> /info
notallhalted <All plc threads are not halted> /error
disabled <Simulate function is disabled> /error
thread_halt <Thread is halted> /error
thread_running <Thread is running> /info
nohalted <No halted plc threads found> /error
norunning <No running plc threads found> /error
active <Simulate active> /info
scanon <PlcPgm scan on> /info
scanoff <PlcPgm scan off> /error
scanon_set <Scan on set on selected PlcPgms> /info
scanoff_set <Scan off set on selected PlgPgms> /info
noselplcpgm <No PlcPgm selected> /error
.end
......@@ -16,6 +16,7 @@
23 thread
24 proc
25 sev
26 sim
50 hd
100 cdh
101 ndc
......
!
! 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.
!
! pwrb_c_simulateconfig.wb_load -- Defines the class SimulateConfig.
!
SObject pwrb:Class
!/**
! @Version 1.0
! @Group Servers,NodeConfiguration
! @Summary Configuration of the simulation server.
! Configuration of the simulation server.
!
! The simulation server handles simulation of the database and plc.
!*/
Object SimulateConfig $ClassDef 602
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "SimulateConfig"
EndBody
!/**
! Optional description.
!*/
Object Description $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Disable the simulate function.
!*/
Object Disable $Attribute 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
EndBody
EndObject
!/**
! Server is initialized.
!*/
Object InitDone $Attribute 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
EndBody
EndObject
!/**
! Process status.
!*/
Object Status $Attribute 4
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Dialog message.
!*/
Object Message $Attribute 5
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Halt the execution of the plc.
!*/
Object PlcHalt $Attribute 6
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Halt order.
!*/
Object PlcHaltOrder $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Halt order status.
!*/
Object PlcHaltStatus $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Continue the execution of the plc.
!*/
Object PlcContinue $Attribute 9
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Continue order.
!*/
Object PlcContinueOrder $Attribute 10
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Continue order status.
!*/
Object PlcContinueStatus $Attribute 11
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Step one scan of the plc.
!*/
Object PlcStep $Attribute 12
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Step order.
!*/
Object PlcStepOrder $Attribute 13
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Step order status.
!*/
Object PlcStepStatus $Attribute 14
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Load order.
!*/
Object PlcLoadOrder $Attribute 15
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Load file.
!*/
Object LoadFile $Attribute 16
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Load action.
!*/
Object Load $Attribute 17
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Store action.
!*/
Object Store $Attribute 18
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! List of plc threads.
!*/
Object PlcThreads $Attribute 19
Body SysBody
Attr TypeRef = "pwrs:Type-$Objid"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 30
EndBody
EndObject
!/**
! Array of selected threads.
!*/
Object ThreadSelected $Attribute 20
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 30
EndBody
EndObject
!/**
! Array of thread status.
!*/
Object ThreadStatus $Attribute 21
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 30
EndBody
EndObject
!/**
! Select all threads.
!*/
Object SelectAllThreads $Attribute 22
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Clear all threads.
!*/
Object ClearAllThreads $Attribute 23
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! List of plcpgm.
!*/
Object PlcPgm $Attribute 24
Body SysBody
Attr TypeRef = "pwrs:Type-$Objid"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 200
EndBody
EndObject
!/**
! Array of selected plcpgm.
!*/
Object PlcPgmSelected $Attribute 25
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 200
EndBody
EndObject
!/**
! Array of plcpgm thread status.
!*/
Object PlcPgmThreadStatus $Attribute 26
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 200
EndBody
EndObject
!/**
! Array of plcpgm scanoff.
!*/
Object PlcPgmStatus $Attribute 27
Body SysBody
Attr TypeRef = "pwrs:Type-$Status"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Elements = 200
EndBody
EndObject
!/**
! Select all plcpgm.
!*/
Object SelectAllPlcPgm $Attribute 28
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Clear all plcpgm.
!*/
Object ClearAllPlcPgm $Attribute 29
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Set scan on on selected plcpgms.
!*/
Object PlcPgmScanOn $Attribute 30
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
!/**
! Set scan off on selected plcpgms.
!*/
Object PlcPgmScanOff $Attribute 31
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
EndBody
EndObject
EndObject
Object Template SimulateConfig
Body RtBody
EndBody
EndObject
EndObject
EndSObject
......@@ -117,6 +117,10 @@ int main(int argc, char *argv[])
// Hide
hide = 1;
break;
case '-':
// Display sent to gtk
i++;
break;
default:
cout << "Unknown argument: " << argv[i] << endl;
}
......
0! DefaultWidth 1253
0! DefaultHeight 513
1
100 20
135 20
101 20
102 -73
103 -136
104 2.99213
136 2.99213
105 100
106 -10
107 -20
108 62.7005
109 0.65
110 25.5408
111 1.2
116 0
117 0
118 208
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 270
2202 pwr_c_simulateconfig
2203 51
2205 0
2204
2206 0
2207
2208
2209 0.35
2210 0.35
2211 63
2212 26
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2236 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 1
2233 1
2234 3
2235 1
2243 0
2245 0
2244
99
123
2
3
300 pwr_smallbuttoncenter
301
2
19
1904 O0
1900 2.4
1901 0.2
1902 1.05
1903 0.2
1908 0
1909 102
1910 102
1911 1
1915 1
1913 16
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 2
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0.2
701 0.2
99
503
7
700 2.4
701 1.05
99
99
1912
28
2800 1
2801 0
2802 6.07153e-17
2803 0
2804 1
2805 -2.63678e-16
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 2
1305 1
1303
7
700 0.55
701 0.65
99
1304 0
1307 0
99
2908
28
2800 1
2801 0
2802 0.781156
2803 0
2804 1
2805 0.2
2806 0
99
2901 0
99
99
302 0
304 0
303
305 0
306
307
308 0
321 16
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
329
1
100 1
101 1
102 33619964
103 0
99
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
321 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
99
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
321 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
99
99
124
2
99
125
2
19
1904 O241
1900 31.5039
1901 0.65
1902 25.528
1903 4.04589
1908 0
1909 32
1910 32
1911 0
1915 1
1913 0.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 0
502
7
700 0.75
701 5.6
99
503
7
700 10.05
701 10.7
99
99
1912
28
2800 3.31762
2801 0
2802 -1.83822
2803 0
2804 4.21218
2805 -19.5423
2806 0
99
99
19
1904 O254
1900 62.7005
1901 31.8
1902 25.5408
1903 4.1
1908 0
1909 32
1910 32
1911 0
1915 1
1913 0.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 0
502
7
700 0.75
701 5.6
99
503
7
700 10.05
701 10.7
99
99
1912
28
2800 3.32263
2801 0
2802 29.308
2803 0
2804 4.20409
2805 -19.4429
2806 0
99
99
40
4000 $pwr_exe/pwr_c_simulateconfig_threads
4003 0.8
4006 21
4007 24
4004 1
4005 0
4008 1
4009 $object
4001
19
1904
1900 31.2364
1901 0.900004
1902 25.1617
1903 7.1
1908 0
1909 300
1910 300
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 1.6
701 7.7
99
503
7
700 9.6
701 13.7
99
99
1912
28
2800 3.79205
2801 0
2802 -5.16728
2803 0
2804 3.01029
2805 -16.0793
2806 0
99
99
4002
1
100 1
101 1
102 33619964
103 0
99
99
19
1904 O227
1900 14.9651
1901 0.749999
1902 3.56598
1903 1.2
1908 0
1909 32
1910 32
1911 0
1915 1
1913 2
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.75
701 5.6
99
503
7
700 10.05
701 10.7
99
99
1912
28
2800 1.5285
2801 0
2802 -0.396377
2803 0
2804 0.463918
2805 -1.39794
2806 0
99
99
30
3004 O228
3000 4.35
3001 1.3
3002 2.61052
3003 2.01052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Database
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 0.2
2803 0
2804 1
2805 0.01052
2806 0
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O229
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.03873
1007 5.25
1008 2.81378
1009 1.85
1013 9.03873
1014 5.25
1015 2.81378
1016 1.85
1003
0
9
0
0
0
0
0
0
0
0
1004
"Store..."
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 4.90557
2803 0
2804 1.13385
2805 1.62323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 64
102 33619964
103 0
55
5500 open fileview/type=save/file="$pwrp_load/*.rtdbs"/target=$object.LoadFile/trigg=$object.Store
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O233
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 26.4387
1007 22.65
1008 5.4138
1009 4.45
1013 26.4387
1014 22.65
1015 5.4138
1016 4.45
1003
0
11
0
0
0
0
0
0
0
0
1004
"Select all"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 22.3056
2803 0
2804 1.13385
2805 4.2232
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.SelectAllThreads##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O234
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.7887
1007 27
1008 5.4138
1009 4.45
1013 30.7887
1014 27
1015 5.4138
1016 4.45
1003
0
11
0
0
0
0
0
0
0
0
1004
"Clear all"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 26.6556
2803 0
2804 1.13385
2805 4.2232
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.ClearAllThreads##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O235
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.0388
1007 5.25
1008 5.36377
1009 4.4
1013 9.0388
1014 5.25
1015 5.36377
1016 4.4
1003
0
9
0
0
0
0
0
0
0
0
1004
"Halt"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 4.9056
2803 0
2804 1.13385
2805 4.17323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.PlcHalt##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O236
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.4888
1007 9.7
1008 5.36377
1009 4.4
1013 13.4888
1014 9.7
1015 5.36377
1016 4.4
1003
0
9
0
0
0
0
0
0
0
0
1004
"Step"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 9.3556
2803 0
2804 1.13385
2805 4.17323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.PlcStep##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O237
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 17.8887
1007 14.1
1008 5.3638
1009 4.4
1013 17.8887
1014 14.1
1015 5.3638
1016 4.4
1003
0
9
0
0
0
0
0
0
0
0
1004
"Continue"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 13.7556
2803 0
2804 1.13385
2805 4.1732
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.PlcContinue##Boolean
5101 1
5102 1
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 O244
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 54.388
1007 23.3812
1008 2.82
1009 1.91
1013 54.388
1014 23.3812
1015 2.82
1016 1.91
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 6.75
701 5.6
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 65532
1028 0
1029
99
2707
28
2800 1.16567
2801 0
2802 23.3812
2803 0
2804 1.3
2805 1.91
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
101 1
102 65532
103 0
12
1200 $object.Message##Status
1201 %m
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 O245
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 23.1
1007 22.5
1008 2.65
1009 2
1013 23.1
1014 22.5
1015 2.65
1016 2
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 22.35
2803 0
2804 1
2805 1.9
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
101 0
102 65532
103 0
31
3100 $object.Message##Status
3101 38
99
99
99
30
3004 O246
3000 21.45
3001 18.65
3002 2.56052
3003 1.96052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Message
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 17.55
2803 0
2804 1
2805 -0.03948
2806 0
99
99
30
3004 O247
3000 4.4
3001 1.3
3002 5.16052
3003 4.56052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 PlcThread
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 0.2
2803 0
2804 1
2805 2.56052
2806 0
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O249
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 13.4387
1007 9.65
1008 2.81377
1009 1.85
1013 13.4387
1014 9.65
1015 2.81377
1016 1.85
1003
0
9
0
0
0
0
0
0
0
0
1004
"Load..."
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 9.30557
2803 0
2804 1.13385
2805 1.62323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 64
102 33619964
103 0
55
5500 open fileview/type=open/file="$pwrp_load/*.rtdbs"/target=$object.LoadFile/trigg=$object.Load
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O250
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 61.8806
1007 56.95
1008 2.81377
1009 1.85
1013 61.8806
1014 56.95
1015 2.81377
1016 1.85
1003
0
12
0
0
0
0
0
0
0
0
1004
"Show Server"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 2.24115
2801 0
2802 56.5018
2803 0
2804 1.13385
2805 1.62323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 64
102 33619964
103 0
55
5500 open graph pwr_c_simulateconfig_server/inst=$object
99
99
99
40
4000 $pwr_exe/pwr_c_simulateconfig_plcpgms
4003 0.8
4006 21
4007 24
4004 1
4005 1
4008 1
4009 $object
4001
19
1904 O251
1900 62.4364
1901 32.1
1902 25.1616
1903 7.14993
1908 0
1909 300
1910 300
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 1.6
701 7.7
99
503
7
700 9.6
701 13.7
99
99
1912
28
2800 3.79205
2801 0
2802 26.0327
2803 0
2804 3.00195
2805 -15.9651
2806 0
99
99
4002
1
100 1
101 1
102 33619964
103 0
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O252
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 57.6388
1007 53.85
1008 5.41377
1009 4.45
1013 57.6388
1014 53.85
1015 5.41377
1016 4.45
1003
0
11
0
0
0
0
0
0
0
0
1004
"Select all"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 53.5056
2803 0
2804 1.13385
2805 4.22323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.SelectAllPlcPgm##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O253
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 62.0388
1007 58.25
1008 5.41377
1009 4.45
1013 62.0388
1014 58.25
1015 5.41377
1016 4.45
1003
0
11
0
0
0
0
0
0
0
0
1004
"Clear all"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 57.9056
2803 0
2804 1.13385
2805 4.22323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.ClearAllPlcPgm##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O255
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 39.4888
1007 35.7
1008 5.41377
1009 4.45
1013 39.4888
1014 35.7
1015 5.41377
1016 4.45
1003
0
9
0
0
0
0
0
0
0
0
1004
"Scan On"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 35.3556
2803 0
2804 1.13385
2805 4.22323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.PlcPgmScanOn##Boolean
5101 1
5102 1
99
99
99
27
2703 10000
2704 32
2722 10000
2705 32
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_smallbuttoncenter
1002 O256
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 43.8888
1007 40.1
1008 5.41377
1009 4.45
1013 43.8888
1014 40.1
1015 5.41377
1016 4.45
1003
0
9
0
0
0
0
0
0
0
0
1004
"Scan Off"
1001
7
700 4.45
701 7.65
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.72215
2801 0
2802 39.7556
2803 0
2804 1.13385
2805 4.22323
2806 0
99
2716 0
2718
2717
2719 0
2724 1
2727 0
2728 303
2729 4
2721
1
100 1
101 4
102 33619964
103 0
51
5100 $object.PlcPgmScanOff##Boolean
5101 1
5102 1
99
99
99
30
3004 O258
3000 34.85
3001 32.6
3002 5.16052
3003 4.56052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 PlcPgm
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 31.5
2803 0
2804 1
2805 2.56052
2806 0
99
99
30
3004 O259
3000 6.3
3001 3.2
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 PlcThread
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 2.1
2803 0
2804 1
2805 4.21052
2806 0
99
99
30
3004 O260
3000 18
3001 16.15
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Count
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 15.05
2803 0
2804 1
2805 4.21052
2806 0
99
99
30
3004 O261
3000 22.8
3001 19.25
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 18.15
2803 0
2804 1
2805 4.21052
2806 0
99
99
30
3004 O262
3000 37.85
3001 35.6
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 PlcPgm
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 34.5
2803 0
2804 1
2805 4.21052
2806 0
99
99
30
3004 O264
3000 51.6
3001 48.5
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 PlcThread
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 47.4
2803 0
2804 1
2805 4.21052
2806 0
99
99
30
3004 O265
3000 62.1
3001 58.55
3002 6.81052
3003 6.21052
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 57.45
2803 0
2804 1
2805 4.21052
2806 0
99
99
99
99
This source diff could not be displayed because it is too large. You can view the blob instead.
0! DefaultWidth 623
0! DefaultHeight 113
1
100 20
135 20
101 20
102 -9
103 -114
104 3.7377
136 3.7377
105 100
106 -1
107 -21
108 30.85
109 0.8
110 5.13
111 0.65
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 248
2202 pwr_c_simulateconfig_server
2203 51
2205 0
2204
2206 0
2207
2208
2209 0.35
2210 0.35
2211 31.5
2212 6
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2236 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
2245 0
2244
99
123
2
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
321 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
99
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
321 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
99
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
321 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
99
99
124
2
99
125
2
19
1904 O196
1900 30.85
1901 0.8
1902 5.13
1903 0.65
1908 33
1909 31
1910 31
1911 0
1915 1
1913 1
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 4
1923 0
1907 0
1906
1905
5
500 33
501 1
504 1
505 0
502
7
700 0.8
701 0.65
99
503
7
700 30.85
701 6.25
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 0.8
2805 0.13
2806 0
99
99
30
3004 O197
3000 3.4
3001 1.1
3002 2.5
3003 1.9
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Disable
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 2.91434e-16
2803 0
2804 1
2805 -0.1
2806 0
99
99
30
3004 O198
3000 3.1
3001 1.05
3002 3.61052
3003 3.01052
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.05
2803 0
2804 1
2805 1.01052
2806 0
99
99
27
2703 10000
2704 10000
2722 10000
2705 10000
2723 10000
2706 10000
2708 0
2709 0
2710 0
2711 0
2712 0
2713 0
2714 0
2715 0
2720 0
2725 0
2726 0
2702 0
2701
2700
10
1000 pwr_indsquare
1002 O153
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 3.65
1009 3
1013 6.95
1014 6.35
1015 3.65
1016 3
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 2.9
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
101 0
102 65532
103 0
31
3100 $node.ProcStatus[17]##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 O154
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.556
1007 7.15
1008 3.65
1009 2.95
1013 30.556
1014 7.15
1015 3.65
1016 2.95
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 7.15
2803 0
2804 1
2805 2.95
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
101 1
102 65532
103 0
12
1200 $node.ProcStatus[17]##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 O155
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 4.55
1009 3.9
1013 6.95
1014 6.35
1015 4.55
1016 3.9
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 3.8
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 33554432
101 0
102 65532
103 0
31
3100 $node.ProcMsgSeverity[17]##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 O156
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.5632
1007 7.15
1008 4.6
1009 3.9
1013 30.5632
1014 7.15
1015 4.6
1016 3.9
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 7.15
2803 0
2804 1
2805 3.9
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
101 1
102 65532
103 0
12
1200 $node.ProcMessage[17]##string80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O220
3000 4.95
3001 1.05
3002 4.61052
3003 4.01052
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.05
2803 0
2804 1
2805 2.01052
2806 0
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 O161
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.4614
1007 6.3182
1008 1.87
1009 0.96
1013 30.4614
1014 6.3182
1015 1.87
1016 0.96
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.907638
2801 0
2802 6.3182
2803 0
2804 1.3
2805 0.96
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
101 1
102 65532
103 0
12
1200 $object.Description##String80
1201 %s
1202 1
1203 1
1204 0
99
99
99
30
3004 O221
3000 4.65
3001 1.1
3002 1.6
3003 1
3008 103
3010 4
3011 2
3007 0
3006
3005
9
900 2
901 303
904 0
902 Description
903
7
700 1.1
701 2.5
99
99
3009
28
2800 1
2801 0
2802 2.91434e-16
2803 0
2804 1
2805 -1
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 O162
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 8.6
1007 6.3
1008 2.7
1009 2
1013 8.6
1014 6.3
1015 2.7
1016 2
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
2801 0
2802 6.3
2803 0
2804 1
2805 2
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 4
2721
1
100 1
101 1
102 65532
103 0
12
1200 $object.Disable##Boolean
1201 %d
1202 1
1203 1
1204 0
99
99
99
99
99
0! DefaultWidth 0
0! DefaultHeight 0
1
100 20
135 20
101 20
102 0
103 -30
104 3.7377
136 3.7377
105 100
106 0
107 -5
108 31.0581
109 0.75
110 27.0713
111 -0.05
116 0
117 0
118 127
119 113
120 0
121 Claes context
122 0
126 1
127 1
128 0
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
134
22
2200 0
2201 94
2202 pwr_c_simulateconfig_threads
2203 300
2205 0
2204
2206 0
2207
2208
2209 0
2210 0
2211 0
2212 0
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 0
2236 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 0
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 0
2227
2228 0
2229 0
2233 1
2234 1
2235 0
2243 0
2245 0
2244
99
123
2
3
300 pwr_checkbox__p2
301
2
19
1904 O0
1900 0.8
1901 0
1902 0.8
1903 0
1908 0
1909 2
1910 2
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 0
502
7
700 0
701 0
99
503
7
700 0.8
701 0.8
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
26
2604 O1
2600 0.735072
2601 0.135072
2602 0.616615
2603 0.256115
2605
25
2500 0
2501 1
2503 1
2504 0
2502
2
7
700 0.1
701 0.2
99
7
700 0.2
701 0.2
99
7
700 0.3
701 0.5
99
7
700 0.7
701 0.2
99
7
700 0.21975
701 0.5605
99
7
700 0.1
701 0.2
99
99
99
2608 0
2609 2
2610 2
2611 1
2616 0
2614 5
2617 2
2615 0
2618 0
2607 0
2606
2612
28
2800 1
2801 0
2802 0.0350719
2803 0
2804 1
2805 0.056115
2806 0
99
2613 1
2619 0
2620 0
2621 0
2622 0
2623 0
2624 4
2625 0
99
99
302 0
304 0
303
305 0
306
307
308 0
321 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
329
1
100 1
101 1
102 33619964
103 0
99
99
3
300 pwr_checkbox
301
2
19
1904 O0
1900 0.8
1901 0
1902 0.8
1903 0
1908 0
1909 2
1910 2
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 0
502
7
700 0
701 0
99
503
7
700 0.8
701 0.8
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 32768
321 16
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314 pwr_checkbox__p2
315 1
316 1
317 0
318 0
319 0
320 0
328 0
329
1
100 1
101 1
102 33619964
103 0
99
99
3
300 pwr_indsquare
301
2
19
1904 O1
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
321 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
329
1
100 1
101 1
102 33619964
103 0
99
99
99
124
2
99
125
2
42
4203 0.5
4206 20
4207 24
4204 0
4205 0
4208 1
4209 30
4210 3
4211 0
4212 0
4213 2
4214 303
4217 0
4218 2
4219 304
4220 0
4221 1
4215 1
4216 0.9
4222 1
4264 9999
4223 0
4240 13
4241
4265 2
4242 3
4243
4266 2
4244 14
4245
4267 2
4246 0
4247
4268 2
4248 0
4249
4269 2
4250 0
4251
4270 2
4252 0
4253
4271 2
4254 0
4255
4272 2
4256 0
4257
4273 2
4258 0
4259
4274 2
4260 0
4261
4275 2
4262 0
4263
4276 2
4200
19
1904 O0
1900 31.0581
1901 2.95
1902 27.0713
1903 -5.06539e-15
1908 33
1909 31
1910 31
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 33
501 1
504 1
505 1
502
7
700 11.05
701 7.35
99
503
7
700 19.05
701 13.35
99
99
1912
28
2800 3.51351
2801 0
2802 -35.8743
2803 0
2804 4.51189
2805 -33.1624
2806 0
99
99
4202
1
100 16777216
101 0
102 65532
103 1
30
3000 $object.PlcThreads##Objid#30
3001 %1o
3002
3003 $header.Count##Int32
3004 %d
3005
3006 $header.Description##String80
3007 %s
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
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_checkbox
1002 O1
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 1.55
1007 0.75
1008 0.75
1009 -0.05
1013 1.55
1014 0.75
1015 0.75
1016 -0.05
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 -0.05
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[0]##Boolean
99
53
5300 $object.ThreadSelected[0]##Boolean
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_checkbox
1002 O2
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 1.55
1007 0.75
1008 1.65172
1009 0.851724
1013 1.55
1014 0.75
1015 1.65172
1016 0.851724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 0.851724
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[1]##Boolean
99
53
5300 $object.ThreadSelected[1]##Boolean
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_checkbox
1002 O3
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 1.55
1007 0.75
1008 2.55345
1009 1.75345
1013 1.55
1014 0.75
1015 2.55345
1016 1.75345
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 1.75345
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[2]##Boolean
99
53
5300 $object.ThreadSelected[2]##Boolean
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_checkbox
1002 O4
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 1.55
1007 0.75
1008 3.45517
1009 2.65517
1013 1.55
1014 0.75
1015 3.45517
1016 2.65517
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 2.65517
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[3]##Boolean
99
53
5300 $object.ThreadSelected[3]##Boolean
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_checkbox
1002 O5
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 1.55
1007 0.75
1008 4.3569
1009 3.5569
1013 1.55
1014 0.75
1015 4.3569
1016 3.5569
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 3.5569
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[4]##Boolean
99
53
5300 $object.ThreadSelected[4]##Boolean
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_checkbox
1002 O6
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 1.55
1007 0.75
1008 5.25862
1009 4.45862
1013 1.55
1014 0.75
1015 5.25862
1016 4.45862
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 4.45862
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[5]##Boolean
99
53
5300 $object.ThreadSelected[5]##Boolean
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_checkbox
1002 O7
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 1.55
1007 0.75
1008 6.16034
1009 5.36034
1013 1.55
1014 0.75
1015 6.16034
1016 5.36034
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 5.36034
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[6]##Boolean
99
53
5300 $object.ThreadSelected[6]##Boolean
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_checkbox
1002 O8
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 1.55
1007 0.75
1008 7.06207
1009 6.26207
1013 1.55
1014 0.75
1015 7.06207
1016 6.26207
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 6.26207
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[7]##Boolean
99
53
5300 $object.ThreadSelected[7]##Boolean
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_checkbox
1002 O9
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 1.55
1007 0.75
1008 7.96379
1009 7.16379
1013 1.55
1014 0.75
1015 7.96379
1016 7.16379
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 7.16379
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[8]##Boolean
99
53
5300 $object.ThreadSelected[8]##Boolean
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_checkbox
1002 O10
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 1.55
1007 0.75
1008 8.86552
1009 8.06552
1013 1.55
1014 0.75
1015 8.86552
1016 8.06552
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 8.06552
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[9]##Boolean
99
53
5300 $object.ThreadSelected[9]##Boolean
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_checkbox
1002 O11
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 1.55
1007 0.75
1008 9.76724
1009 8.96724
1013 1.55
1014 0.75
1015 9.76724
1016 8.96724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 8.96724
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[10]##Boolean
99
53
5300 $object.ThreadSelected[10]##Boolean
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_checkbox
1002 O12
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 1.55
1007 0.75
1008 10.669
1009 9.86897
1013 1.55
1014 0.75
1015 10.669
1016 9.86897
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 9.86897
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[11]##Boolean
99
53
5300 $object.ThreadSelected[11]##Boolean
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_checkbox
1002 O13
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 1.55
1007 0.75
1008 11.5707
1009 10.7707
1013 1.55
1014 0.75
1015 11.5707
1016 10.7707
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 10.7707
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[12]##Boolean
99
53
5300 $object.ThreadSelected[12]##Boolean
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_checkbox
1002 O14
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 1.55
1007 0.75
1008 12.4724
1009 11.6724
1013 1.55
1014 0.75
1015 12.4724
1016 11.6724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 11.6724
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[13]##Boolean
99
53
5300 $object.ThreadSelected[13]##Boolean
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_checkbox
1002 O15
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 1.55
1007 0.75
1008 13.3741
1009 12.5741
1013 1.55
1014 0.75
1015 13.3741
1016 12.5741
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 12.5741
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[14]##Boolean
99
53
5300 $object.ThreadSelected[14]##Boolean
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_checkbox
1002 O16
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 1.55
1007 0.75
1008 14.2759
1009 13.4759
1013 1.55
1014 0.75
1015 14.2759
1016 13.4759
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 13.4759
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[15]##Boolean
99
53
5300 $object.ThreadSelected[15]##Boolean
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_checkbox
1002 O17
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 1.55
1007 0.75
1008 15.1776
1009 14.3776
1013 1.55
1014 0.75
1015 15.1776
1016 14.3776
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 14.3776
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[16]##Boolean
99
53
5300 $object.ThreadSelected[16]##Boolean
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_checkbox
1002 O18
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 1.55
1007 0.75
1008 16.0793
1009 15.2793
1013 1.55
1014 0.75
1015 16.0793
1016 15.2793
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 15.2793
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[17]##Boolean
99
53
5300 $object.ThreadSelected[17]##Boolean
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_checkbox
1002 O19
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 1.55
1007 0.75
1008 16.981
1009 16.181
1013 1.55
1014 0.75
1015 16.981
1016 16.181
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 16.181
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[18]##Boolean
99
53
5300 $object.ThreadSelected[18]##Boolean
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_checkbox
1002 O20
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 1.55
1007 0.75
1008 17.8828
1009 17.0828
1013 1.55
1014 0.75
1015 17.8828
1016 17.0828
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 17.0828
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[19]##Boolean
99
53
5300 $object.ThreadSelected[19]##Boolean
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_checkbox
1002 O21
1005
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1006 1.55
1007 0.75
1008 18.7845
1009 17.9845
1013 1.55
1014 0.75
1015 18.7845
1016 17.9845
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 17.9845
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[20]##Boolean
99
53
5300 $object.ThreadSelected[20]##Boolean
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_checkbox
1002 O22
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 1.55
1007 0.75
1008 19.6862
1009 18.8862
1013 1.55
1014 0.75
1015 19.6862
1016 18.8862
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 18.8862
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[21]##Boolean
99
53
5300 $object.ThreadSelected[21]##Boolean
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_checkbox
1002 O23
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 1.55
1007 0.75
1008 20.5879
1009 19.7879
1013 1.55
1014 0.75
1015 20.5879
1016 19.7879
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 19.7879
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[22]##Boolean
99
53
5300 $object.ThreadSelected[22]##Boolean
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_checkbox
1002 O24
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 1.55
1007 0.75
1008 21.4897
1009 20.6897
1013 1.55
1014 0.75
1015 21.4897
1016 20.6897
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 20.6897
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[23]##Boolean
99
53
5300 $object.ThreadSelected[23]##Boolean
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_checkbox
1002 O25
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 1.55
1007 0.75
1008 22.3914
1009 21.5914
1013 1.55
1014 0.75
1015 22.3914
1016 21.5914
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 21.5914
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[24]##Boolean
99
53
5300 $object.ThreadSelected[24]##Boolean
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_checkbox
1002 O26
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 1.55
1007 0.75
1008 23.2931
1009 22.4931
1013 1.55
1014 0.75
1015 23.2931
1016 22.4931
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 22.4931
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[25]##Boolean
99
53
5300 $object.ThreadSelected[25]##Boolean
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_checkbox
1002 O27
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 1.55
1007 0.75
1008 24.1948
1009 23.3948
1013 1.55
1014 0.75
1015 24.1948
1016 23.3948
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 23.3948
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[26]##Boolean
99
53
5300 $object.ThreadSelected[26]##Boolean
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_checkbox
1002 O28
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 1.55
1007 0.75
1008 25.0966
1009 24.2966
1013 1.55
1014 0.75
1015 25.0966
1016 24.2966
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 24.2966
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[27]##Boolean
99
53
5300 $object.ThreadSelected[27]##Boolean
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_checkbox
1002 O29
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 1.55
1007 0.75
1008 25.9983
1009 25.1983
1013 1.55
1014 0.75
1015 25.9983
1016 25.1983
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 25.1983
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[28]##Boolean
99
53
5300 $object.ThreadSelected[28]##Boolean
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_checkbox
1002 O30
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 1.55
1007 0.75
1008 26.9
1009 26.1
1013 1.55
1014 0.75
1015 26.9
1016 26.1
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 0.6
701 0.55
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1
2801 0
2802 0.75
2803 0
2804 1
2805 26.1
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 1
101 1
102 33619964
103 0
18
1800 $object.ThreadSelected[29]##Boolean
99
53
5300 $object.ThreadSelected[29]##Boolean
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 O64
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 2.53486
1007 1.8
1008 0.7461
1009 -0.05
1013 2.53486
1014 1.8
1015 0.7461
1016 -0.05
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 -0.172477
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[0]##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 O65
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 2.53486
1007 1.8
1008 1.64782
1009 0.851724
1013 2.53486
1014 1.8
1015 1.64782
1016 0.851724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 0.729247
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[1]##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 O66
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 2.53486
1007 1.8
1008 2.54955
1009 1.75345
1013 2.53486
1014 1.8
1015 2.54955
1016 1.75345
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 1.63097
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[2]##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 O67
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 2.53486
1007 1.8
1008 3.45127
1009 2.65517
1013 2.53486
1014 1.8
1015 3.45127
1016 2.65517
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 2.5327
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[3]##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 O68
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 2.53486
1007 1.8
1008 4.353
1009 3.5569
1013 2.53486
1014 1.8
1015 4.353
1016 3.5569
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 3.43442
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[4]##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 O69
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 2.53486
1007 1.8
1008 5.25472
1009 4.45862
1013 2.53486
1014 1.8
1015 5.25472
1016 4.45862
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 4.33614
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[5]##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 O70
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 2.53486
1007 1.8
1008 6.15644
1009 5.36034
1013 2.53486
1014 1.8
1015 6.15644
1016 5.36034
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 5.23787
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[6]##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 O71
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 2.53486
1007 1.8
1008 7.05817
1009 6.26207
1013 2.53486
1014 1.8
1015 7.05817
1016 6.26207
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 6.13959
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[7]##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 O72
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 2.53486
1007 1.8
1008 7.95989
1009 7.16379
1013 2.53486
1014 1.8
1015 7.95989
1016 7.16379
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 7.04132
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[8]##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 O73
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 2.53486
1007 1.8
1008 8.86162
1009 8.06552
1013 2.53486
1014 1.8
1015 8.86162
1016 8.06552
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 7.94304
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[9]##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 O74
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 2.53486
1007 1.8
1008 9.76334
1009 8.96724
1013 2.53486
1014 1.8
1015 9.76334
1016 8.96724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 8.84476
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[10]##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 O75
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 2.53486
1007 1.8
1008 10.6651
1009 9.86897
1013 2.53486
1014 1.8
1015 10.6651
1016 9.86897
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 9.74649
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[11]##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 O76
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 2.53486
1007 1.8
1008 11.5668
1009 10.7707
1013 2.53486
1014 1.8
1015 11.5668
1016 10.7707
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 10.6482
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[12]##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 O77
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 2.53486
1007 1.8
1008 12.4685
1009 11.6724
1013 2.53486
1014 1.8
1015 12.4685
1016 11.6724
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 11.5499
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[13]##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 O78
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 2.53486
1007 1.8
1008 13.3702
1009 12.5741
1013 2.53486
1014 1.8
1015 13.3702
1016 12.5741
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 12.4517
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[14]##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 O79
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 2.53486
1007 1.8
1008 14.272
1009 13.4759
1013 2.53486
1014 1.8
1015 14.272
1016 13.4759
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 13.3534
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[15]##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 O80
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 2.53486
1007 1.8
1008 15.1737
1009 14.3776
1013 2.53486
1014 1.8
1015 15.1737
1016 14.3776
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 14.2551
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[16]##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 O81
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 2.53486
1007 1.8
1008 16.0754
1009 15.2793
1013 2.53486
1014 1.8
1015 16.0754
1016 15.2793
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 15.1568
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[17]##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 O82
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 2.53486
1007 1.8
1008 16.9771
1009 16.181
1013 2.53486
1014 1.8
1015 16.9771
1016 16.181
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 16.0586
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[18]##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 O83
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 2.53486
1007 1.8
1008 17.8789
1009 17.0828
1013 2.53486
1014 1.8
1015 17.8789
1016 17.0828
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 16.9603
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[19]##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 O84
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 2.53486
1007 1.8
1008 18.7806
1009 17.9845
1013 2.53486
1014 1.8
1015 18.7806
1016 17.9845
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 17.862
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[20]##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 O85
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 2.53486
1007 1.8
1008 19.6823
1009 18.8862
1013 2.53486
1014 1.8
1015 19.6823
1016 18.8862
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 18.7637
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[21]##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 O86
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 2.53486
1007 1.8
1008 20.584
1009 19.7879
1013 2.53486
1014 1.8
1015 20.584
1016 19.7879
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 19.6655
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[22]##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 O87
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 2.53486
1007 1.8
1008 21.4858
1009 20.6897
1013 2.53486
1014 1.8
1015 21.4858
1016 20.6897
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 20.5672
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[23]##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 O88
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 2.53486
1007 1.8
1008 22.3875
1009 21.5914
1013 2.53486
1014 1.8
1015 22.3875
1016 21.5914
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 21.4689
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[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 O89
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 2.53486
1007 1.8
1008 23.2892
1009 22.4931
1013 2.53486
1014 1.8
1015 23.2892
1016 22.4931
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 22.3706
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[25]##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 O90
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 2.53486
1007 1.8
1008 24.1909
1009 23.3948
1013 2.53486
1014 1.8
1015 24.1909
1016 23.3948
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 23.2724
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[26]##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 O91
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 2.53486
1007 1.8
1008 25.0927
1009 24.2966
1013 2.53486
1014 1.8
1015 25.0927
1016 24.2966
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 24.1741
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[27]##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 O92
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 2.53486
1007 1.8
1008 25.9944
1009 25.1983
1013 2.53486
1014 1.8
1015 25.9944
1016 25.1983
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 25.0758
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[28]##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 O93
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 2.53486
1007 1.8
1008 26.8961
1009 26.1
1013 2.53486
1014 1.8
1015 26.8961
1016 26.1
1003
0
0
0
0
0
0
0
0
0
0
1004
1001
7
700 1.95
701 -1.15
99
1010
1011
1018
1019
1020
1021
1022
1023
1024
1025
1012 0
1017 9999
1027 9999
1026 33619964
1028 0
1029
99
2707
28
2800 1.22477
2801 0
2802 1.61628
2803 0
2804 1.22477
2805 25.9775
2806 0
99
2716 0
2718
2717
2719 0
2724 0
2727 0
2728 303
2729 9999
2721
1
100 33554432
101 0
102 33619964
103 0
31
3100 $object.ThreadStatus[29]##Status
3101 38
99
99
99
99
99
......@@ -7848,8 +7848,22 @@ int GeTable::scan( grow_tObject object)
int sts;
pwr_tOName name;
pwr_tObjid objid = *(pwr_tObjid *)headerref_p[i][j];
switch ( format[i][1]) {
case '1':
// Format %1o, write path
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_pathStrict);
break;
case '2':
// Format %2o, write volume and path
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_volumeStrict);
break;
default:
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_object);
}
if ( EVEN(sts))
strcpy( name, "");
len = sprintf( buf, "%s", name);
......@@ -7957,8 +7971,21 @@ int GeTable::scan( grow_tObject object)
int sts;
pwr_tOName name;
pwr_tObjid objid = *(pwr_tObjid *)(p[i] + offs);
switch ( format[i][1]) {
case '1':
// Format %1o, write path
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_pathStrict);
break;
case '2':
// Format %2o, write volume and path
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_volumeStrict);
break;
default:
sts = gdh_ObjidToName ( objid, name, sizeof(name),
cdh_mName_object);
}
if ( EVEN(sts))
strcpy( name, "");
len = sprintf( buf, "%s", name);
......
......@@ -437,6 +437,7 @@ void GlowArray::copy_from( const GlowArray& array)
case glow_eObjectType_Node:
case glow_eObjectType_GrowNode:
case glow_eObjectType_GrowSlider:
case glow_eObjectType_GrowConGlue:
{
if ( array.a[j] == ((GlowCon *)array.a[i])->destination())
dest_node = (GlowNode *)a[k];
......@@ -446,7 +447,8 @@ void GlowArray::copy_from( const GlowArray& array)
break;
}
default:
;
if ( array.a[j]->type() != glow_eObjectType_Con)
k++;
}
}
if ( dest_node && source_node)
......
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