Datasheet

pwr_tUInt32 size; /* Size of rack data area in byte */
pwr_tUInt32 offset; /* Offset to rack data area in agent */
int scan_interval; /* Interval between scans */
int scan_interval_cnt;/* Counter to detect next time to scan */
int AgentControlled;/* TRUE if kontrolled by agent */
io_sCard *cardlist; /* List of card structures */
void *Local; /* Pointer to method defined data structure*/
struct s_Rack *next; /* Next rack */
} io_sRack;
Data structure for a card
typedef struct s_Card {
pwr_tClassId Class; /* Class of card object */
pwr_tObjid Objid; /* Objid of card object */
pwr_tOName Name; /* Full name of card object */
io_mAction Action; /* Type of method defined (Read/Write)*/
io_mProcess Process; /* Process number */
pwr_tStatus (* Init) (); /* Init method */
pwr_tStatus (* Close) (); /* Close method */
pwr_tStatus (* Read) (); /* Read method */
pwr_tStatus (* Write) (); /* Write method */
pwr_tStatus (* Swap) (); /* Write method */
pwr_tAddress *op; /* Pointer to card object */
pwr_tDlid Dlid; /* Dlid for card object pointer */
pwr_tUInt32 size; /* Size of card data area in byte */
pwr_tUInt32 offset; /* Offset to card data area in rack */
int scan_interval; /* Interval between scans */
int scan_interval_cnt;/* Counter to detect next time to scan */
int AgentControlled;/* TRUE if kontrolled by agent */
int ChanListSize; /* Size of chanlist */
io_sChannel *chanlist; /* Array of channel structures */
void *Local; /* Pointer to method defined data structure*/
struct s_Card *next; /* Next card */
} io_sCard;
Data structure for a channel
typedef struct {
void *cop; /* Pointer to channel object */
pwr_tDlid ChanDlid; /* Dlid for pointer to channel */
pwr_sAttrRef ChanAref; /* AttrRef for channel */
void *sop; /* Pointer to signal object */
pwr_tDlid SigDlid; /* Dlid for pointer to signal */
pwr_sAttrRef SigAref; /* AttrRef for signal */
void *vbp; /* Pointer to valuebase for signal */
void *abs_vbp; /* Pointer to absvaluebase (Co only) */
pwr_tClassId ChanClass; /* Class of channel object */
pwr_tClassId SigClass; /* Class of signal object */
pwr_tUInt32 size; /* Size of channel in byte */
pwr_tUInt32 offset; /* Offset to channel in card */
pwr_tUInt32 mask; /* Mask for bit oriented channels */
} io_sChannel;
Create I/O objects
For a process node the I/O system is configured in the node hierarchy with objects of type agent,
rack and card. The classes for these objects are created in the class editor. The classes are defined
with a $ClassDef object, a $ObjBodyDef object (RtBody), and below this one $Attribute object for
each attribute of the class. The attributes are determined by the functionality of the methods of the