P40vrmw.h, B-75, Appendix b – Rockwell Automation 1785-Vx0B, D17856.5.9 PLC-5 VME VMEbus Programmable Controllers User Manual User Manual

Page 233

Advertising
background image

Sample API Modules

Appendix B

B-75

#ifndef P40VRMW_H
#define P40VRMW_H 1

///////////////////////////////////////////////////////////////////////////////
// Definitions for the PCCC READ-MODIFY-WRITE COMMAND AND REPLY PACKETS //
///////////////////////////////////////////////////////////////////////////////

#include ”p40vspcc.h”

#pragma pack(1)
/***************************************************************************/
/************************ INTEL VERSION OF DEFINITIONS *********************/
/***************************************************************************/

/* The structure of a system address with its associated AND and OR masks. */
typedef struct
{
PCCC_LOGBIN_SYSTEM_ADDRESS_TYPE sysAddr;
UWORD andMask;
UWORD orMask;
} PLC540V_RMW_ADDRMASK_TYPE;

/* An array of the maximum number of system address, AND and OR masks that
can be operated upon in one operation. The user MUST be certain to
initialize this array properly by calling plc540v_init_addrmasks().
*/
#define kPLC540V_MAX_RMW_ADDRMASKS_BYTES 242
#define kPLC540V_MAX_RMW_ADDRMASKS (kPLC540V_MAX_RMW_ADDRMASKS_BYTES /
sizeof(PLC540V_RMW_ADDRMASK_TYPE))

typedef PLC540V_RMW_ADDRMASK_TYPE

PLC540V_RMW_ADDRMASKS_TYPE[kPLC540V_MAX_RMW_ADDRMASKS];

/* The PCCC RMW command packet structure. */
typedef struct
{
UBYTE reserved[4];
UBYTE cmd;
UBYTE sts;
UWORD tns;
UBYTE fnc;
PLC540V_RMW_ADDRMASKS_TYPE addrMasks;
} PLC540V_PCCC_RMW_CMD_TYPE;
#define kPLC540V_PCCC_RMW_CMD_SIZE (sizeof(PLC540V_PCCC_RMW_CMD_TYPE))

/* The PCCC RMW reply packet structure. */
typedef struct
{
UBYTE lnhHi;
UBYTE lnhLo;
UBYTE reserved[4];
UBYTE cmd;
UBYTE sts;
UWORD tns;
UBYTE extSts;
} PLC540V_PCCC_RMW_RPY_TYPE;
#define kPLC540V_PCCC_RMW_RPY_SIZE (sizeof(PLC540V_PCCC_RMW_RPY_TYPE))
#pragma pack()

void plc540v_init_addrmasks(PLC540V_RMW_ADDRMASKS_TYPE addrMasks);

P40VRMW.H

Advertising