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

Page 197

Advertising
background image

Sample API Modules

Appendix B

B-39

#ifndef P40VSPCC_H
#define P40VSPCC_H 1

///////////////////////////////////////////////////////////////////////////////
// Definitions for the SEND PCCC COMMAND STRUCTURE //
///////////////////////////////////////////////////////////////////////////////

#include ”pccc.h”

#pragma pack(1)
/***************************************************************************/
/************************ INTEL VERSION OF DEFINITIONS *********************/
/***************************************************************************/
#define kPLC540V_PCCC_MAX_CMD_DATA 243
typedef UBYTE PLC540V_PCCC_DATA_TYPE[kPLC540V_PCCC_MAX_CMD_DATA];

/* A generic pointer to a PCCC command packet. */
typedef void far *PLC540V_PCCC_PACKET_TYPE;

/* A generic pointer to a PCCC reply packet. */
typedef void far *PLC540V_PCCC_REPLY_TYPE;

typedef struct
{
UWORD addressModifier:8;
UWORD width:1;
UWORD reserved1:7;
} PLC540V_SPCCC_TRANSFER_TYPE;

typedef struct
{
UWORD commandWord;
UWORD responseWord;
UWORD cmdIntLevel;
UWORD cmdStatusId;
UWORD reserved1[3];
PLC540V_SPCCC_TRANSFER_TYPE transferInfo;
UWORD packetAddressHigh;
UWORD packetAddressLow;
UWORD packetSize;
UWORD reserved2[5];
} PLC540V_SPCCC_CMD_TYPE;

#pragma pack()
void plc540v_send_pccc_command(

ULONG vmeCmdBlkAddr,
PLC540V_PCCC_PACKET_TYPE pcccCommandPacket,
UWORD pcccCommandPacketSize,
PLC540V_PCCC_REPLY_TYPE pcccReplyPacket,
UWORD pcccReplyPacketSize,
UWORD baseAddress,
VME_INTERRUPT_LEVEL_TYPE cmdIntLevel,
UBYTE cmdStatusId,
VME_DATA_WIDTH_TYPE width,
VME_ADDRESS_MODIFIER_TYPE addrMod,
PLC540V_STATUS_TYPE *status);

#endif

P40VSPCC.H

Advertising