Commit 54aefe68 authored by Claes Sjofors's avatar Claes Sjofors

Redundance communication, redcom, added

parent 565034de
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
......@@ -66,7 +66,7 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
sprintf( fname, "/sys/bus/w1/devices/w1 bus master/%s/w1_slave", name);
local->value_fp = fopen( fname, "r");
if (!local->value_fp) {
errh_Error( "Maxim_DS18B20 Unable op open %s, '%ux'", cp->Name,
errh_Error( "Maxim_DS18B20 Unable op open %s, '%x'", cp->Name,
op->Super.Address);
sts = IO__INITFAIL;
op->Status = sts;
......
......@@ -68,7 +68,7 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
local = (io_sLocalAiDevice *) calloc( 1, sizeof(io_sLocalAiDevice));
cp->Local = local;
sprintf( name, "%d-%012x", op->Family, op->Super.Address);
sprintf( name, "%x-%012x", op->Family, op->Super.Address);
name_len = strlen(name);
strncpy( fname, op->DataFile, sizeof(fname));
......@@ -81,7 +81,7 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
}
local->value_fp = fopen( fname, "r");
if (!local->value_fp) {
errh_Error( "OneWire_AiDevice Unable op open %s, '%ux'", cp->Name,
errh_Error( "OneWire_AiDevice Unable op open %s, '%x'", cp->Name,
op->Super.Address);
sts = IO__INITFAIL;
op->Status = sts;
......
......@@ -81,7 +81,7 @@ static pwr_tStatus IoCardInit( io_tCtx ctx,
}
local->value_fp = fopen( fname, "w");
if (!local->value_fp) {
errh_Error( "OneWire_AoDevice Unable op open %s, '%ux'", cp->Name,
errh_Error( "OneWire_AoDevice Unable op open %s, '%x'", cp->Name,
op->Super.Address);
sts = IO__INITFAIL;
op->Status = sts;
......
......@@ -1322,7 +1322,7 @@ char *CnvReadWbl::flags_to_string( int value)
strcpy( str, "");
if ( value & pwr_mAdef_pointer) strcat( str, "Pointer|");
if ( value & pwr_mAdef_array) strcat( str, "Array|");
if ( value & pwr_mAdef_backup) strcat( str, "Backup|");
if ( value & pwr_mAdef_redutransfer) strcat( str, "ReduTransfer|");
if ( value & pwr_mAdef_castattr) strcat( str, "CastAttr|");
if ( value & pwr_mAdef_state) strcat( str, "State|");
if ( value & pwr_mAdef_const) strcat( str, "Const|");
......
......@@ -673,7 +673,7 @@ bck_file_process (
dcli_translate_filename( fname, backup_confp->BackupFile);
bckfile = fopen(fname, "r+" A_MODE);
if (bckfile != NULL) {
errh_Info("BACKUP opened existing backupfile %s\n", FGETNAME);
errh_Info("BACKUP opened existing backupfile %s", FGETNAME);
csts = fread(&filehead, sizeof filehead, 1, bckfile);
if (csts == 0) {
perror("BACKUP cannot read header");
......
......@@ -58,6 +58,7 @@
#include "rt_qini.h"
#include "rt_qcom.h"
#include "rt_io_base.h"
#include "rt_redu.h"
#include "rt_ini_msg.h"
#include "rt_errh_msg.h"
#include "rt_pwr_msg.h"
......@@ -126,6 +127,7 @@ start (
{
pwr_tStatus sts;
char console[80];
int state;
#if defined OS_POSIX
int fd;
......@@ -208,6 +210,10 @@ start (
ini_SetSystemStatus( cp, PWR__STARTUP);
errh_SetStatus( PWR__STARTUP);
sts = redu_get_initial_state( cp->nodename, cp->busid, &state);
if ( ODD(sts))
cp->np->RedundancyState = state;
sts = ini_RcReadAndSet(cp->dir, cp->nodename, cp->busid);
if (EVEN(sts))
errh_LogError(&cp->log, "ini_RcReadAndSet, %m", sts);
......
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
This diff is collapsed.
......@@ -4,7 +4,7 @@
*
* This file is part of Proview.
*
* This program is free software; you can redistribute it and/or
* This program is free software; you can redistribute 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.
......@@ -635,6 +635,17 @@ typedef enum {
pwr_eSafetyLevel_High
} pwr_eSafetyLevel;
/*_*
@aref activepassiveenum ActivePassiveEnum
*/
typedef pwr_tEnum pwr_tRedundancyStateEnum;
typedef enum {
pwr_eRedundancyState_Off,
pwr_eRedundancyState_Passive,
pwr_eRedundancyState_Active
} pwr_eRedundancyState;
/* Operating system. */
/*_*
......@@ -706,7 +717,7 @@ union pwr_m_Adef {
pwr_32Bits (
pwr_Bits( pointer , 1),
pwr_Bits( array , 1),
pwr_Bits( backup , 1),
pwr_Bits( redutransfer , 1),
pwr_Bits( castattr , 1),
pwr_Bits( state , 1),
pwr_Bits( constant , 1),
......@@ -738,7 +749,7 @@ union pwr_m_Adef {
#define pwr_mAdef_pointer pwr_Bit(0) /* 1 */
#define pwr_mAdef_array pwr_Bit(1) /* 2 */
#define pwr_mAdef_backup pwr_Bit(2) /* 4 */
#define pwr_mAdef_redutransfer pwr_Bit(2) /* 4 */
#define pwr_mAdef_castattr pwr_Bit(3) /* 8 */
#define pwr_mAdef_state pwr_Bit(4) /* 16 */
#define pwr_mAdef_const pwr_Bit(5) /* 32 */
......@@ -766,7 +777,7 @@ union pwr_m_Adef {
#define PWR_MASK_POINTER pwr_mAdef_pointer
#define PWR_MASK_ARRAY pwr_mAdef_array
#define PWR_MASK_BACKUP pwr_mAdef_backup
#define PWR_MASK_REDUTRANSFER pwr_mAdef_redutransfer
#define PWR_MASK_CASTATTR pwr_mAdef_castattr
#define PWR_MASK_STATE pwr_mAdef_state
#define PWR_MASK_CONST pwr_mAdef_const
......@@ -1098,6 +1109,7 @@ struct pwr_s_Node {
pwr_tTime ProcTimeStamp[110] pwr_dAlignLW;
pwr_tBoolean EmergBreakTrue pwr_dAlignW;
pwr_tUInt32 EmergBreakSelect pwr_dAlignW;
pwr_tRedundancyStateEnum RedundancyState pwr_dAlignW;
};
#define pwr_mAppl_PLC 1 /* This is the PLC program */
......
......@@ -59,16 +59,17 @@
# define pwr_cNameLocalWb "$pwrp_root/src/db/wb.wb_load"
# define pwr_cNameGblVolumeList "$pwra_db/pwr_volumelist.dat"
# define pwr_cNameCmnVolumeList "pwr_volumelist.dat"
# define pwr_cNameRttCrr "rtt_crr_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttCrrObj "rtt_crro_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttCrrCode "rtt_crrc_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttSignals "rtt_crrs_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNamePkg "pwrp_pkg_%s_%04d.tgz"
# define pwr_cNameCustomBuild "$pwrp_exe/custom_build.sh"
# define pwr_cNameBaseXttHelp "$pwr_lang/xtt_help.dat"
# define pwr_cNameBaseWttHelp "$pwr_lang/wtt_help.dat"
# define pwr_cNameRttCrr "rtt_crr_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttCrrObj "rtt_crro_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttCrrCode "rtt_crrc_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNameRttSignals "rtt_crrs_%3.3d_%3.3d_%3.3d_%3.3d.dat"
# define pwr_cNamePkg "pwrp_pkg_%s_%04d.tgz"
# define pwr_cNameCustomBuild "$pwrp_exe/custom_build.sh"
# define pwr_cNameBaseXttHelp "$pwr_lang/xtt_help.dat"
# define pwr_cNameBaseWttHelp "$pwr_lang/wtt_help.dat"
# define pwr_cNameProjectXttHelp "$pwrp_load/xtt_help.dat"
# define pwr_cNamePlcXttHelp "$pwrp_load/xtthelp_%s_plc.dat"
# define pwr_cNamePlcXttHelp "$pwrp_load/xtthelp_%s_plc.dat"
# define pwr_cNameReduNode "%sld_redunode_%s_%04d.dat"
#elif defined OS_VMS || defined OS_ELN
......
......@@ -73,6 +73,10 @@
# include "rt_qcom.h"
#endif
#ifndef rt_redu_h
# include "rt_redu.h"
#endif
static const unsigned int pwr_cInputOffset = pwr_AlignLW(sizeof(void*)) + pwr_AlignLW(sizeof(pwr_tBoolean));
......@@ -188,6 +192,7 @@ struct plc_sThread {
unsigned int sim_idx;
unsigned int sim_halted;
unsigned int sim_singlestep;
redu_tCtx redu;
};
struct plc_sProcess {
......
......@@ -72,6 +72,8 @@ void drive_exec (
object->ProdStop = *object->ProdStopP;
object->NoStart = *object->NoStartP;
timer2_scan(tp, object);
/* Is there a stop condition ? */
stop = object->SafeStop;
if (object->Local) {
......@@ -134,7 +136,7 @@ void drive_exec (
} else if (start && !object->Order) { /* New start */
object->Order = TRUE;
object->TimerTime = object->ProdTim;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = 2; /* Wait for contactor */
}
......@@ -143,7 +145,7 @@ void drive_exec (
if ((object->Status == 2) && object->ConOn) {
/* Waiting for contactor is finished */
object->TimerTime = object->SpeedTim;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = 3; /* Wait for Speed */
} else if ((object->Status == 3) && object->Speed) {
object->Status = 4; /* Production */
......@@ -182,6 +184,8 @@ void valve_exec (
object->ProdOpen = *object->ProdOpenP;
object->ProdClose = *object->ProdCloseP;
timer2_scan(tp, object);
/* Check different orders after priority */
if (object->SafeClose) {
open = FALSE;
......@@ -216,7 +220,7 @@ void valve_exec (
/* Check if new order */
if (open != object->OrderOpen) {
object->Status = open; /* Opening / Closing */
timer_in( tp, object);
timer2_in( tp, object);
}
/* Check if alarms */
......@@ -315,6 +319,8 @@ void mvalve_exec (
object->ProdClose = *object->ProdCloseP;
object->ProdStop = *object->ProdStopP;
timer2_scan(tp, object);
/* Remove old alarms */
if (((object->AutoOpen || object->ProdOpen || object->SafeOpen) &&
!oold) || object->ManOpen || object->ManStop
......@@ -456,7 +462,7 @@ void mvalve_exec (
object->Status = 0;
} else {
object->TimerTime = object->Ctime;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = 1;
}
}
......@@ -467,7 +473,7 @@ void mvalve_exec (
object->Status = 0;
} else {
object->TimerTime = object->Ctime;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = -1;
}
}
......@@ -495,7 +501,7 @@ void mvalve_exec (
if ((object->Status == 1) && object->ConOpen && !object->TimerFlag) {
object->TimerTime = object->RunTime;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = 2;
}
......@@ -510,7 +516,7 @@ void mvalve_exec (
if ((object->Status == -1) && object->ConClose && !object->TimerFlag) {
object->TimerTime = object->RunTime;
timer_in( tp, object);
timer2_in( tp, object);
object->Status = -2;
}
......@@ -553,6 +559,8 @@ void posit_exec (
iold = object->InPlace;
aold = object->AutoPos;
timer2_scan(tp, object);
/* Read Input data */
object->PosVal = *object->PosValP;
if (!object->ManMode)
......@@ -586,7 +594,7 @@ void posit_exec (
object->Order2 = FALSE;
/* Set up new Time */
if (!iold && object->TimerTime > 0) {
timer_in( tp, object);
timer2_in( tp, object);
}
/* Check if InPos long enough */
......
......@@ -175,11 +175,12 @@
*/
#define dorder_exec(obj,stepobj) \
timer2_scan( tp, obj ); \
if (stepobj->Status[0]) \
{ \
if ( !obj->Old ) \
{ \
timer_in( tp, obj ); \
timer2_in( tp, obj ); \
} \
obj->Status[0] = (obj->TimerFlag) ? false : true; \
} \
......@@ -200,11 +201,12 @@
*/
#define lorder_exec(obj,stepobj) \
timer2_scan( tp, obj ); \
if ( stepobj->Status[0] ) \
{ \
if ( !obj->StatusOld ) \
{ \
timer_in( tp, obj ); \
timer2_in( tp, obj ); \
obj->Status[0] = true; \
} \
else \
......
......@@ -127,10 +127,12 @@
PULSE
@aref pulse Pulse
*/
#define pulse_exec(obj,in) \
timer2_scan( tp, obj); \
if ( in && !obj->StatusOld ) \
{ \
timer_in( tp, obj ); \
timer2_in( tp, obj ); \
obj->Status = true; \
} \
else \
......@@ -142,9 +144,10 @@
@aref wait Wait
*/
#define wait_exec(obj,in) \
timer2_scan( tp, obj); \
if ( in && !obj->StatusOld ) \
{ \
timer_in( tp, obj); \
timer2_in( tp, obj); \
} \
obj->StatusOld = in; \
obj->Status = in && !obj->TimerFlag;
......@@ -154,9 +157,10 @@
@aref timer Timer
*/
#define timer_exec(obj,in) \
timer2_scan( tp, obj); \
if ( !in && obj->StatusOld ) \
{ \
timer_in( tp, obj); \
timer2_in( tp, obj); \
} \
obj->StatusOld = in; \
obj->Status = in || obj->TimerFlag;
......@@ -166,11 +170,12 @@
@aref waith Waith
*/
#define waith_exec(obj,in,hold) \
timer2_scan( tp, obj); \
if ( in ) \
{ \
if ( !obj->StatusOld ) \
{ \
timer_in( tp, obj); \
timer2_in( tp, obj); \
obj->CountOld = obj->TimerCount; \
} \
if ( hold ) \
......
......@@ -86,6 +86,7 @@
@aref asup ASup
*/
#define ASup_exec(o, In, con)\
timer2_scan(tp, o); \
if ((o->High && In <= o->CtrlLimit - o->Hysteres) || \
(!o->High && In >= o->CtrlLimit + o->Hysteres) \
) { \
......@@ -106,7 +107,7 @@
if (o->AlarmCheck && o->DetectOn && !o->Blocked) { \
if (o->DetectCheck) { \
o->ActualValue = In; \
timer_in(tp, o); \
timer2_in(tp, o); \
time_GetTime(&o->DetectTime); \
o->DetectCheck = FALSE; \
} \
......@@ -149,6 +150,7 @@
@aref dsup DSup
*/
#define DSup_exec(o, In, con) \
timer2_scan(tp, o); \
if (In != o->CtrlPosition) { \
if (o->Action) o->Action = FALSE; \
if (o->ReturnCheck) { \
......@@ -165,7 +167,7 @@
if (o->AlarmCheck && o->DetectOn && !o->Blocked) { \
if (o->DetectCheck) { \
o->ActualValue = In; \
timer_in(tp, o); \
timer2_in(tp, o); \
time_GetTime(&o->DetectTime); \
o->DetectCheck = FALSE; \
} \
......@@ -208,6 +210,7 @@
if ( !co)\
return;\
co->Control = con;\
timer2_scan(tp, co);\
if (In != co->CtrlPosition) {\
if (co->Action) co->Action = FALSE;\
if (co->ReturnCheck) {\
......@@ -224,7 +227,7 @@
if (co->AlarmCheck && co->DetectOn && !co->Blocked) {\
if (co->DetectCheck) {\
co->ActualValue = In;\
timer_in(tp, co);\
timer2_in(tp, co);\
time_GetTime(&co->DetectTime);\
co->DetectCheck = FALSE;\
}\
......@@ -271,6 +274,7 @@
if ( !co)\
return;\
co->Control = con;\
timer2_scan(tp, co);\
if ((co->High && In <= co->CtrlLimit - co->Hysteres) ||\
(!co->High && In >= co->CtrlLimit + co->Hysteres)\
) {\
......@@ -291,7 +295,7 @@
if (co->AlarmCheck && co->DetectOn && !co->Blocked) {\
if (co->DetectCheck) {\
co->ActualValue = In;\
timer_in(tp, co);\
timer2_in(tp, co);\
time_GetTime(&co->DetectTime);\
co->DetectCheck = FALSE;\
}\
......
......@@ -71,6 +71,7 @@
#include "rt_thread.h"
#include "rt_thread_msg.h"
#include "rt_sim_msg.h"
#include "rt_qcom_msg.h"
#include "rt_que.h"
#include "rt_io_base.h"
#include "rt_csup.h"
......@@ -95,6 +96,99 @@
static void scan (plc_sThread*);
static pwr_tStatus plc_redu_init( plc_sThread *tp)
{
pwr_tStatus sts;
pwr_tOid child;
void *p;
pwr_tCid cid;
for ( sts = gdh_GetChild( tp->aref.Objid, &child); ODD(sts); sts = gdh_GetNextSibling( child, &child)) {
sts = gdh_GetObjectClass( child, &cid);
if ( EVEN(sts)) continue;
if (cid == pwr_cClass_RedcomPacket) {
sts = gdh_ObjidToPointer( child, &p);
if ( EVEN(sts)) return sts;
sts = redu_init( &tp->redu, tp->pp->Node, p);
if ( EVEN(sts)) return sts;
break;
}
}
return PLC__SUCCESS;
}
static pwr_tStatus plc_redu_receive( plc_sThread *tp)
{
pwr_tStatus sts;
void *msg;
int size;
unsigned int timeout = tp->i_scan_time;
sts = redu_receive( tp->redu, timeout, &size, &msg);
if ( sts == QCOM__TMO)
return sts;
else if ( EVEN(sts))
return sts;
switch ( ((redu_sHeader *)msg)->type) {
case redu_eMsgType_Table:
if ( tp->redu->t)
redu_free_table( tp->redu);
sts = redu_receive_table( tp->redu, msg);
if ( EVEN(sts)) return sts;
break;
case redu_eMsgType_Cyclic:
if ( tp->redu->packetp)
tp->redu->packetp->PacketSize = size;
sts = redu_unpack_message( tp->redu, msg);
if ( EVEN(sts)) return sts;
break;
default:
printf( "Redu: Unknown message type\n");
}
qcom_Free( &sts, msg);
return PLC__SUCCESS;
}
static pwr_tStatus plc_redu_send( plc_sThread *tp)
{
pwr_tStatus sts;
void *msg;
if ( !tp->redu->table_sent) {
void *table_msg;
sts = redu_create_table( tp->redu);
if ( EVEN(sts)) return sts;
sts = redu_send_table( tp->redu, &table_msg);
if ( EVEN(sts)) return sts;
sts = redu_send( tp->redu, table_msg,
((redu_sTableMsgHeader *)table_msg)->size + sizeof( redu_sTableMsgHeader),
tp->redu->msgid_table);
if ( EVEN(sts)) return sts;
tp->redu->table_sent = 1;
}
sts = redu_create_message( tp->redu, &msg);
if ( EVEN(sts)) return sts;
tp->redu->packetp->PacketSize = ((redu_sMsgHeader *)msg)->size +
sizeof(redu_sMsgHeader);
sts = redu_send( tp->redu, msg, ((redu_sMsgHeader *)msg)->size +
sizeof(redu_sMsgHeader), tp->redu->msgid_cyclic);
free( msg);
return sts;
}
void
......@@ -173,6 +267,14 @@ plc_thread (
}
}
if ( tp->pp->Node->RedundancyState != pwr_eRedundancyState_Off) {
sts = plc_redu_init( tp);
if ( EVEN(sts)) {
errh_Error("Redundance init, %m", sts);
tp->redu = 0;
}
}
thread_MutexLock(&tp->pp->io_copy_mutex);
memcpy(tp->copy.ai_a.p, tp->pp->base.ai_a.p, tp->copy.ai_a.size);
......@@ -388,33 +490,63 @@ scan (
io_swap(tp->plc_io_ctx, io_eEvent_EmergencyBreak);
tp->emergency_break_old = pp->Node->EmergBreakTrue;
thread_MutexLock(&pp->io_copy_mutex);
if ( tp->redu && tp->pp->Node->RedundancyState == pwr_eRedundancyState_Passive) {
time_GetTimeMonotonic(&tp->before_scan);
time_GetTime(&tp->before_scan_abs);
memcpy(tp->copy.ai_a.p, pp->base.ai_a.p, tp->copy.ai_a.size);
memcpy(tp->copy.ao_a.p, pp->base.ao_a.p, tp->copy.ao_a.size);
memcpy(tp->copy.av_a.p, pp->base.av_a.p, tp->copy.av_a.size);
memcpy(tp->copy.ca_a.p, pp->base.ca_a.p, tp->copy.ca_a.size);
memcpy(tp->copy.co_a.p, pp->base.co_a.p, tp->copy.co_a.size);
memcpy(tp->copy.di_a.p, pp->base.di_a.p, tp->copy.di_a.size);
memcpy(tp->copy.do_a.p, pp->base.do_a.p, tp->copy.do_a.size);
memcpy(tp->copy.dv_a.p, pp->base.dv_a.p, tp->copy.dv_a.size);
memcpy(tp->copy.ii_a.p, pp->base.ii_a.p, tp->copy.ii_a.size);
memcpy(tp->copy.io_a.p, pp->base.io_a.p, tp->copy.io_a.size);
memcpy(tp->copy.iv_a.p, pp->base.iv_a.p, tp->copy.iv_a.size);
memcpy(tp->copy.bi_a.p, pp->base.bi_a.p, tp->copy.bi_a.size);
memcpy(tp->copy.bo_a.p, pp->base.bo_a.p, tp->copy.bo_a.size);
sts = plc_redu_receive( tp);
if ( EVEN(sts)) return;
thread_MutexUnlock(&pp->io_copy_mutex);
time_Aadd(NULL, &tp->sync_time, &tp->scan_time);
time_GetTimeMonotonic(&tp->after_scan);
time_GetTime(&tp->after_scan_abs);
if (tp->log)
pwrb_PlcThread_Exec(tp);
if (tp->csup_lh != NULL) {
pwr_tTime now;
time_GetTime(&now);
csup_Exec(&sts, tp->csup_lh, (pwr_tDeltaTime *) &tp->sync_time, (pwr_tDeltaTime *) &tp->after_scan, &now);
}
tp->one_before_scan = tp->before_scan;
tp->ActualScanTime = tp->f_scan_time;
/* Execute all the PLC code */
tp->exec(0, tp);
return;
}
if (pp->IOHandler->IOReadWriteFlag) {
sts = io_write(tp->plc_io_ctx);
if (EVEN(sts)) {
pp->IOHandler->IOReadWriteFlag = FALSE;
errh_Error("IO write, %m", sts);
errh_SetStatus( PLC__IOWRITE);
if ( tp->pp->Node->RedundancyState != pwr_eRedundancyState_Passive) {
thread_MutexLock(&pp->io_copy_mutex);
memcpy(tp->copy.ai_a.p, pp->base.ai_a.p, tp->copy.ai_a.size);
memcpy(tp->copy.ao_a.p, pp->base.ao_a.p, tp->copy.ao_a.size);
memcpy(tp->copy.av_a.p, pp->base.av_a.p, tp->copy.av_a.size);
memcpy(tp->copy.ca_a.p, pp->base.ca_a.p, tp->copy.ca_a.size);
memcpy(tp->copy.co_a.p, pp->base.co_a.p, tp->copy.co_a.size);
memcpy(tp->copy.di_a.p, pp->base.di_a.p, tp->copy.di_a.size);
memcpy(tp->copy.do_a.p, pp->base.do_a.p, tp->copy.do_a.size);
memcpy(tp->copy.dv_a.p, pp->base.dv_a.p, tp->copy.dv_a.size);
memcpy(tp->copy.ii_a.p, pp->base.ii_a.p, tp->copy.ii_a.size);
memcpy(tp->copy.io_a.p, pp->base.io_a.p, tp->copy.io_a.size);
memcpy(tp->copy.iv_a.p, pp->base.iv_a.p, tp->copy.iv_a.size);
memcpy(tp->copy.bi_a.p, pp->base.bi_a.p, tp->copy.bi_a.size);
memcpy(tp->copy.bo_a.p, pp->base.bo_a.p, tp->copy.bo_a.size);
thread_MutexUnlock(&pp->io_copy_mutex);
/* Execute all the PLC code */
tp->exec(0, tp);
if (pp->IOHandler->IOReadWriteFlag) {
sts = io_write(tp->plc_io_ctx);
if (EVEN(sts)) {
pp->IOHandler->IOReadWriteFlag = FALSE;
errh_Error("IO write, %m", sts);
errh_SetStatus( PLC__IOWRITE);
}
}
if ( tp->redu && tp->pp->Node->RedundancyState == pwr_eRedundancyState_Active) {
sts = plc_redu_send( tp);
}
}
......
......@@ -93,6 +93,22 @@ typedef struct {
#endif
/* Local timer handing in object without timer list */
#define timer2_in(tp, o) \
o->TimerCount = o->TimerTime / tp->f_scan_time; \
if ( o->TimerCount > 0) \
o->TimerFlag = 1; \
#define timer2_scan(tp, o) \
if ( o->TimerFlag) { \
if ( o->TimerCount <= 0) { \
o->TimerCount = 0; \
o->TimerFlag = 0; \
} \
else \
o->TimerCount -= (1 + tp->skip_count); \
}
#define timer_in(tp, o) { \
o->TimerCount = o->TimerTime / tp->f_scan_time; \
if ( !o->TimerFlag && (o->TimerCount > 0)) { \
......
......@@ -723,8 +723,9 @@ qcom_Put (
qp = qdb_Que(sts, qidp, &np);
if (qp == NULL) break;
bp = inPool(sts, pp->data);
if (bp == NULL) {
if ( !pp->allocate)
bp = inPool(sts, pp->data);
if ( pp->allocate || bp == NULL) {
bp = qdb_Alloc(sts, qdb_eBuffer_base, pp->size);
if ( bp == NULL) {
*sts = QDB__QUOTAEXCEEDED;
......@@ -741,6 +742,11 @@ qcom_Put (
bp->c.flags.b.remote = 1;
bp->b.noderef = pool_Reference(sts, &qdb->pool, np);
bp->b.msg_id = pp->msg_id;
bp->b.prio = pp->prio;
}
else {
bp->b.msg_id = pp->msg_id;
bp->b.prio = pp->prio;
}
qdb_Put(sts, bp, qp);
......
......@@ -203,6 +203,7 @@ typedef struct {
qcom_sType type;
unsigned int msg_id;
unsigned int prio;
unsigned int allocate;
unsigned int size;
void *data;
} qcom_sPut;
......
This diff is collapsed.
/*
* Proview Open Source Process Control.
* Copyright (C) 2005-2016 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_redu_h
#define rt_redu_h
/* rt_redu.h -- Redundancy */
#if defined __cplusplus
extern "C" {
#endif
#ifndef pwr_h
#include "pwr.h"
#endif
#ifndef pwr_baseclasses_h
#include "pwr_baseclasses.h"
#endif
#define redu_cPort 56001
#define redu_cQixExport ((1<<31) | 4)
#define redu_cQixPrio1 ((1<<31) | 5)
#define redu_cQixPrio2 ((1<<31) | 6)
#define redu_cQixPrio3 ((1<<31) | 7)
#define redu_cQixPrio4 ((1<<31) | 8)
#define redu_cQixPrio5 ((1<<31) | 9)
#define redu_cQixPrio6 ((1<<31) | 10)
#define redu_cQixPrio7 ((1<<31) | 11)
#define redu_cQixPrio8 ((1<<31) | 12)
#define redu_cQixPrio9 ((1<<31) | 13)
#define redu_cQixPrio10 ((1<<31) | 14)
typedef enum {
redu_eMsgType_Table,
redu_eMsgType_Cyclic
} redu_eMsgType;
typedef enum {
redu_ePrio_1 = 1,
redu_ePrio_2 = 2,
redu_ePrio_3 = 3,
redu_ePrio_4 = 4,
redu_ePrio_5 = 5,
redu_ePrio_6 = 6,
redu_ePrio_7 = 7,
redu_ePrio_8 = 8,
redu_ePrio_9 = 9,
redu_ePrio_10 = 10,
redu_ePrio__ = 11,
} redu_ePrio;
typedef struct sTable {
pwr_tAttrRef aref;
int offset;
int size;
void *p;
struct sTable *next;
} redu_sTable;
typedef struct {
pwr_sClass_RedcomPacket *packetp;
pwr_sNode *nodep;
qcom_sQid send_qid;
qcom_sQid rcv_qid;
int prio;
int msgid_table;
int msgid_cyclic;
int current_offset;
int attr_cnt;
redu_sTable *t;
redu_sTable *t_last;
float msg_time;
int table_sent;
} redu_sCtx, *redu_tCtx;
typedef struct {
pwr_tUInt32 type;
} redu_sHeader;
typedef struct {
redu_sHeader h;
pwr_tUInt32 size;
pwr_tTime time;
} redu_sMsgHeader;
typedef struct {
redu_sHeader h;
pwr_tUInt32 size;
pwr_tUInt32 attributes;
pwr_tTime time;
} redu_sTableMsgHeader;
typedef struct {
pwr_tAttrRef aref;
pwr_tUInt32 size;
} redu_sTableMsgElement;
pwr_tStatus redu_create_table( redu_tCtx ctx);
void redu_free( redu_tCtx ctx);
void redu_free_table( redu_tCtx ctx);
pwr_tStatus redu_create_message( redu_tCtx ctx, void **msg);
pwr_tStatus redu_unpack_message( redu_tCtx ctx, void *msg);
pwr_tStatus redu_receive_table( redu_tCtx ctx, void *table_msg);
pwr_tStatus redu_send_table( redu_tCtx ctx, void **table_msg);
int redu_init( redu_tCtx *ctx, pwr_sNode *nodep, pwr_sClass_RedcomPacket *packetp);
int redu_send( redu_tCtx ctx, void *msg, int size, unsigned int msg_id);
int redu_receive( redu_tCtx ctx, unsigned int timeout, int *size, void **msg);
void redu_print( redu_tCtx ctx);
pwr_tStatus redu_get_initial_state( char *nodename, int busid, int *state);
#if defined __cplusplus
}
#endif
#endif
......@@ -72,4 +72,5 @@ ininstep <initialize init steps> /error
iostalled <IO stalled, cyclesup delay detected> /fatal
ioread <IO stalled, io read error> /fatal
iowrite <IO stalled, io write error> /fatal
reduinit <Redundcancy init error> /error
.end
......@@ -33,36 +33,166 @@
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_packattrref10.wb_load -- Defines the class PackAttrRef10.
! pwrb_c_redcomlink.wb_load -- Defines the RedComLink class.
!
SObject pwrb:Class
Object PackAttrRef10 $ClassDef 170
!/**
! @Version 1.0
! @Group Servers,NodeConfiguration
! @Summary Display status for a RedCom link.
! Display status for a RedCom link.
!*/
Object RedcomLink $ClassDef 687
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "PackAttrRef10"
Attr StructName = "RedcomLink"
EndBody
Object AttrRef $Attribute 1
!/**
! Node name.
!*/
Object NodeName $Attribute 1
Body SysBody
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$AttrRef"
Attr Elements = 10
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$String16"
EndBody
EndObject
Object Value $Attribute 2
!/**
! Link state.
!*/
Object State $Attribute 2
Body SysBody
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float64"
Attr Elements = 10
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrb:Type-UpDownEnum"
EndBody
EndObject
!/**
! Max resend time.
!*/
Object MaxResendTime $Attribute 3
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
EndBody
EndObject
!/**
! Min resend time.
!*/
Object MinResendTime $Attribute 4
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
EndBody
EndObject
!/**
! Last round trip time.
!*/
Object LastRtt $Attribute 5
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
EndBody
EndObject
!/**
! Timeout.
!*/
Object Timeout $Attribute 6
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
EndBody
EndObject
!/**
! Local ack sequence number.
!*/
Object LackSequenceNumber $Attribute 7
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Remote ack sequence number.
!*/
Object RackSequenceNumber $Attribute 8
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Ack delay.
!*/
Object AckDelay $Attribute 9
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$Float32"
EndBody
EndObject
!/**
! Segment size.
!*/
Object SegmentSize $Attribute 10
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Export buffer quota.
!*/
Object ExportQuota $Attribute 11
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Export buffer allocated space.
!*/
Object ExportAlloc $Attribute 12
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Number of times the export buffer is purged.
!*/
Object ExportPurged $Attribute 13
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr TypeRef = "pwrs:Type-$UInt32"
EndBody
EndObject
!/**
! Disable.
!*/
Object Disable $Attribute 14
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
EndBody
EndObject
EndObject
Object Template PackAttrRef10
Object Template RedcomLink
Body RtBody
EndBody
EndObject
EndObject
EndSObject
......@@ -121,7 +121,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A1"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -136,7 +136,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A2"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -151,7 +151,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A3"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -166,7 +166,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A4"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -181,7 +181,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A5"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -196,7 +196,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A6"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -211,7 +211,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A7"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -226,7 +226,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "A8"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -241,7 +241,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d1"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -256,7 +256,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d2"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -271,7 +271,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d3"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -286,7 +286,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d4"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -301,7 +301,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d5"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -316,7 +316,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d6"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -331,7 +331,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d7"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -346,7 +346,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "d8"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -357,7 +357,7 @@ SObject pwrb:Class
Attr PgmName = "ActVal"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "VAL"
EndBody
......
......@@ -58,7 +58,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 100
EndBody
EndObject
......
......@@ -58,7 +58,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 500
EndBody
EndObject
......
......@@ -75,6 +75,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Val"
EndBody
......
......@@ -78,7 +78,7 @@ SObject pwrb:Class
Object FactorIn $Intern 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -87,7 +87,7 @@ SObject pwrb:Class
Object FactorVal $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -97,6 +97,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Val"
EndBody
......
......@@ -66,7 +66,7 @@ SObject pwrb:Class
Attr PgmName = "In1"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In1"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In2 $Input 2
......@@ -74,7 +74,7 @@ SObject pwrb:Class
Attr PgmName = "In2"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In2"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In3 $Input 3
......@@ -82,7 +82,7 @@ SObject pwrb:Class
Attr PgmName = "In3"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In3"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In4 $Input 4
......@@ -90,7 +90,7 @@ SObject pwrb:Class
Attr PgmName = "In4"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In4"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In5 $Input 5
......@@ -98,7 +98,7 @@ SObject pwrb:Class
Attr PgmName = "In5"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In5"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In6 $Input 6
......@@ -106,7 +106,7 @@ SObject pwrb:Class
Attr PgmName = "In6"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In6"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In7 $Input 7
......@@ -114,7 +114,7 @@ SObject pwrb:Class
Attr PgmName = "In7"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In7"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object In8 $Input 8
......@@ -122,7 +122,7 @@ SObject pwrb:Class
Attr PgmName = "In8"
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "In8"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -133,6 +133,7 @@ SObject pwrb:Class
Attr PgmName = "ActVal"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Val"
EndBody
......
......@@ -101,7 +101,7 @@ SObject pwrb:Class
Attr GraphName = "IN"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -112,7 +112,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "TIM"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -123,6 +123,7 @@ SObject pwrb:Class
Attr PgmName = "ActVal"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "VAL"
EndBody
......@@ -147,7 +148,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_INVISIBLE
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 100
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "TimVect"
......@@ -161,7 +162,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_INVISIBLE
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "StoInd"
EndBody
......@@ -174,7 +175,7 @@ SObject pwrb:Class
Object MaxCount $Intern 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "MaxCount"
EndBody
EndObject
......@@ -198,6 +199,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_INVISIBLE
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "Count"
EndBody
......@@ -210,7 +212,7 @@ SObject pwrb:Class
Object AccTim $Intern 10
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "AccTim"
EndBody
EndObject
......@@ -233,7 +235,7 @@ SObject pwrb:Class
Object MinTim $Intern 11
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "MinTim"
EndBody
EndObject
......@@ -243,7 +245,7 @@ SObject pwrb:Class
Object MaxTim $Intern 12
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "MaxTim"
EndBody
EndObject
......
......@@ -103,6 +103,7 @@ SObject pwrb:Class
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_POINTER
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Size = 4
EndBody
EndObject
......@@ -142,13 +143,13 @@ SObject pwrb:Class
Object PresMaxLimit $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object PresMinLimit $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -261,7 +262,6 @@ SObject pwrb:Class
Object Note $Attribute 19
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_BACKUP
EndBody
EndObject
!/**
......@@ -294,7 +294,7 @@ SObject pwrb:Class
Object FilterType $Attribute 13
Body SysBody
Attr TypeRef = "pwrb:Type-AiFilterTypeEnum"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -308,7 +308,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 4
EndBody
EndObject
......
......@@ -65,6 +65,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_DYNAMIC
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 1
EndBody
EndObject
......
......@@ -165,6 +165,7 @@ SObject pwrb:Class
Attr PgmName = "Status"
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "sts"
EndBody
......
......@@ -103,6 +103,7 @@ SObject pwrb:Class
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_POINTER
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Size = 4
EndBody
EndObject
......@@ -142,13 +143,13 @@ SObject pwrb:Class
Object PresMaxLimit $Attribute 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
Object PresMinLimit $Attribute 8
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -261,7 +262,6 @@ SObject pwrb:Class
Object Note $Attribute 17
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_BACKUP
EndBody
EndObject
EndObject
......
......@@ -62,6 +62,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_DYNAMIC
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 1
EndBody
EndObject
......
......@@ -99,168 +99,168 @@ SObject pwrb:Class
Object ApIn1 $Input 1
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap1"
EndBody
EndObject
Object ApIn2 $Input 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap2"
EndBody
EndObject
Object ApIn3 $Input 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap3"
EndBody
EndObject
Object ApIn4 $Input 4
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap4"
EndBody
EndObject
Object ApIn5 $Input 5
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap5"
EndBody
EndObject
Object ApIn6 $Input 6
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap6"
EndBody
EndObject
Object ApIn7 $Input 7
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap7"
EndBody
EndObject
Object ApIn8 $Input 8
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap8"
EndBody
EndObject
Object ApIn9 $Input 9
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap9"
EndBody
EndObject
Object ApIn10 $Input 10
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap10"
EndBody
EndObject
Object ApIn11 $Input 11
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap11"
EndBody
EndObject
Object ApIn12 $Input 12
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap12"
EndBody
EndObject
Object ApIn13 $Input 13
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap13"
EndBody
EndObject
Object ApIn14 $Input 14
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap14"
EndBody
EndObject
Object ApIn15 $Input 15
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap15"
EndBody
EndObject
Object ApIn16 $Input 16
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap16"
EndBody
EndObject
Object ApIn17 $Input 17
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap17"
EndBody
EndObject
Object ApIn18 $Input 18
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap18"
EndBody
EndObject
Object ApIn19 $Input 19
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap19"
EndBody
EndObject
Object ApIn20 $Input 20
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap20"
EndBody
EndObject
Object ApIn21 $Input 21
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap21"
EndBody
EndObject
Object ApIn22 $Input 22
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap22"
EndBody
EndObject
Object ApIn23 $Input 23
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap23"
EndBody
EndObject
Object ApIn24 $Input 24
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr GraphName = "Ap24"
EndBody
EndObject
......@@ -270,7 +270,7 @@ SObject pwrb:Class
Object MaxIndex $Intern 25
Body SysBody
Attr TypeRef = "pwrs:Type-$Int32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -282,6 +282,7 @@ SObject pwrb:Class
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_ARRAY
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr Elements = 24
EndBody
EndObject
......
......@@ -117,6 +117,7 @@ SObject pwrb:Class
!*/
Object ApOut1 $Output 2
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap1"
EndBody
......@@ -126,6 +127,7 @@ SObject pwrb:Class
!*/
Object ApOut2 $Output 3
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap2"
EndBody
......@@ -135,6 +137,7 @@ SObject pwrb:Class
!*/
Object ApOut3 $Output 4
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap3"
EndBody
......@@ -144,6 +147,7 @@ SObject pwrb:Class
!*/
Object ApOut4 $Output 5
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap4"
EndBody
......@@ -153,6 +157,7 @@ SObject pwrb:Class
!*/
Object ApOut5 $Output 6
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap5"
EndBody
......@@ -162,6 +167,7 @@ SObject pwrb:Class
!*/
Object ApOut6 $Output 7
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap6"
EndBody
......@@ -171,6 +177,7 @@ SObject pwrb:Class
!*/
Object ApOut7 $Output 8
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap7"
EndBody
......@@ -180,6 +187,7 @@ SObject pwrb:Class
!*/
Object ApOut8 $Output 9
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap8"
EndBody
......@@ -189,6 +197,7 @@ SObject pwrb:Class
!*/
Object ApOut9 $Output 10
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap9"
EndBody
......@@ -198,6 +207,7 @@ SObject pwrb:Class
!*/
Object ApOut10 $Output 11
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap10"
EndBody
......@@ -207,6 +217,7 @@ SObject pwrb:Class
!*/
Object ApOut11 $Output 12
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap11"
EndBody
......@@ -216,6 +227,7 @@ SObject pwrb:Class
!*/
Object ApOut12 $Output 13
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap12"
EndBody
......@@ -225,6 +237,7 @@ SObject pwrb:Class
!*/
Object ApOut13 $Output 14
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap13"
EndBody
......@@ -234,6 +247,7 @@ SObject pwrb:Class
!*/
Object ApOut14 $Output 15
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap14"
EndBody
......@@ -243,6 +257,7 @@ SObject pwrb:Class
!*/
Object ApOut15 $Output 16
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap15"
EndBody
......@@ -252,6 +267,7 @@ SObject pwrb:Class
!*/
Object ApOut16 $Output 17
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap16"
EndBody
......@@ -261,6 +277,7 @@ SObject pwrb:Class
!*/
Object ApOut17 $Output 18
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap17"
EndBody
......@@ -270,6 +287,7 @@ SObject pwrb:Class
!*/
Object ApOut18 $Output 19
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap18"
EndBody
......@@ -279,6 +297,7 @@ SObject pwrb:Class
!*/
Object ApOut19 $Output 20
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap19"
EndBody
......@@ -288,6 +307,7 @@ SObject pwrb:Class
!*/
Object ApOut20 $Output 21
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap20"
EndBody
......@@ -297,6 +317,7 @@ SObject pwrb:Class
!*/
Object ApOut21 $Output 22
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap21"
EndBody
......@@ -306,6 +327,7 @@ SObject pwrb:Class
!*/
Object ApOut22 $Output 23
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap22"
EndBody
......@@ -315,6 +337,7 @@ SObject pwrb:Class
!*/
Object ApOut23 $Output 24
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap23"
EndBody
......@@ -324,6 +347,7 @@ SObject pwrb:Class
!*/
Object ApOut24 $Output 25
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Ap24"
EndBody
......@@ -333,6 +357,7 @@ SObject pwrb:Class
!*/
Object MaxIndex $Intern 26
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Int32"
EndBody
EndObject
......
......@@ -78,7 +78,7 @@ SObject pwrb:Class
Object FactorIn $Intern 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -87,7 +87,7 @@ SObject pwrb:Class
Object FactorVal $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -97,6 +97,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Val"
EndBody
......
......@@ -247,7 +247,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "DetectText"
Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr NiNaAnnot = 2
Attr NiNaCond = 1
EndBody
......@@ -259,7 +259,7 @@ SObject pwrb:Class
Object ReturnText $Attribute 9
Body SysBody
Attr PgmName = "ReturnText"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
......@@ -537,7 +537,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "CtrlLimit"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -549,7 +549,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "Hysteres"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -644,7 +644,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "TimerTime"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......
......@@ -238,7 +238,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "DetectText"
Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -248,7 +248,7 @@ SObject pwrb:Class
Object ReturnText $Attribute 9
Body SysBody
Attr PgmName = "ReturnText"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
......@@ -519,7 +519,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "CtrlLimit"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -531,7 +531,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "Hysteres"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -626,7 +626,7 @@ SObject pwrb:Class
Body SysBody
Attr PgmName = "TimerTime"
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......
......@@ -99,6 +99,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Val"
EndBody
......
......@@ -75,7 +75,7 @@ SObject pwrb:Class
Object FactorIn $Intern 2
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -84,7 +84,7 @@ SObject pwrb:Class
Object FactorVal $Intern 3
Body SysBody
Attr TypeRef = "pwrs:Type-$Float32"
Attr Flags |= PWR_MASK_BACKUP
Attr Flags |= PWR_MASK_REDUTRANSFER
EndBody
EndObject
!/**
......@@ -94,6 +94,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Float32"
Attr GraphName = "Val"
EndBody
......
......@@ -67,7 +67,8 @@ SObject pwrb:Class
!*/
Object In $Input 1
Body SysBody
Attr TypeRef = "pwrs:Type-$Time"
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "In"
EndBody
EndObject
......@@ -77,6 +78,7 @@ SObject pwrb:Class
!*/
Object Index $Input 26
Body SysBody
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Int32"
Attr GraphName = "Idx"
EndBody
......@@ -88,6 +90,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out0"
EndBody
......@@ -99,6 +102,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out1"
EndBody
......@@ -110,6 +114,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out2"
EndBody
......@@ -121,6 +126,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out3"
EndBody
......@@ -132,6 +138,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out4"
EndBody
......@@ -143,6 +150,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out5"
EndBody
......@@ -154,6 +162,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out6"
EndBody
......@@ -165,6 +174,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out7"
EndBody
......@@ -176,6 +186,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out8"
EndBody
......@@ -187,6 +198,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out9"
EndBody
......@@ -198,6 +210,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out10"
EndBody
......@@ -209,6 +222,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out11"
EndBody
......@@ -220,6 +234,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out12"
EndBody
......@@ -231,6 +246,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out13"
EndBody
......@@ -242,6 +258,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out14"
EndBody
......@@ -253,6 +270,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out15"
EndBody
......@@ -264,6 +282,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out16"
EndBody
......@@ -275,6 +294,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out17"
EndBody
......@@ -286,6 +306,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out18"
EndBody
......@@ -297,6 +318,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out19"
EndBody
......@@ -308,6 +330,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out20"
EndBody
......@@ -319,6 +342,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out21"
EndBody
......@@ -330,6 +354,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out22"
EndBody
......@@ -341,6 +366,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Out23"
EndBody
......
......@@ -94,6 +94,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Time"
Attr GraphName = "Val"
EndBody
......
......@@ -94,6 +94,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "sts"
EndBody
......
......@@ -94,6 +94,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "sts"
EndBody
......
......@@ -94,6 +94,7 @@ SObject pwrb:Class
Body SysBody
Attr Flags |= PWR_MASK_STATE
Attr Flags |= PWR_MASK_NOEDIT
Attr Flags |= PWR_MASK_REDUTRANSFER
Attr TypeRef = "pwrs:Type-$Boolean"
Attr GraphName = "sts"
EndBody
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment