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
![background image](/manuals/579929/197/background.png)
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