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

Page 241

Advertising
background image

Sample API Modules

Appendix B

B-83

#ifndef P40VSCM_H
#define P40VSCM_H 1

#include ”p40vspcc.h”

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

// Set CPU control and mode flags.
typedef struct
{
UBYTE modeSelect:2;
#define kPLC540V_SCM_PROGRAM_LOAD_MODE 0X0
#define kPLC540V_SCM_TEST_MODE 0X1
#define kPLC540V_SCM_RUN_MODE 0X2
#define kPLC540V_SCM_NOCHANGE_MODE 0X3

UBYTE lock:1;
#define kPLC540V_SCM_NO_LOCK_OUT_OTHERS 0X0
#define kPLC540V_SCM_LOCK_OUT_OTHERS 0X1
UBYTE unused:5;
} PLC540V_PCCC_SCM_CTLMODE_TYPE;

/* The PCCC Set CPU Mode command packet structure. */
typedef struct
{
UBYTE reserved[4];
UBYTE cmd;
UBYTE sts;
UWORD tns;
UBYTE fnc;
PLC540V_PCCC_SCM_CTLMODE_TYPE ctlMode;
} PLC540V_PCCC_SCM_CMD_TYPE;
#define kPLC540V_PCCC_SCM_CMD_SIZE (sizeof(PLC540V_PCCC_SCM_CMD_TYPE))

/* The PCCC Set CPU Mode reply packet structure. */
typedef struct
{
UBYTE lnhHi;
UBYTE lnhLo;
UBYTE reserved[4];
UBYTE cmd;
UBYTE sts;
UWORD tns;
UBYTE extsts;
} PLC540V_PCCC_SCM_RPY_TYPE;
#define kPLC540V_PCCC_SCM_RPY_SIZE (sizeof(PLC540V_PCCC_SCM_RPY_TYPE))
#pragma pack()

void plc540v_pccc_set_cpu_mode(
ULONG vmeCmdBlkAddr,
UWORD baseAddress,
VME_DATA_WIDTH_TYPE width,
VME_ADDRESS_MODIFIER_TYPE addrMod,
PLC540V_PCCC_SCM_CTLMODE_TYPE ctlmode,
PLC540V_PCCC_SCM_RPY_TYPE *reply,
PLC540V_STATUS_TYPE *status);
#endif

P40VSCM.H

Advertising