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

Page 199

Advertising
background image

Sample API Modules

Appendix B

B-41

*
* VME_ADDRESS_MODIFIER_TYPE addrMod defines the address space
* in which the VME data is accessed. It can be A16 or A24.
*
* OUTPUT: PLC540V_STATUS_TYPE *status will contain the final status
* of requesting this function. This status could be and EPC
* or PLC-5/40V value.
*
* RETURNS: Nothing.
*
* EXAMPLE:
* ULONG vmeCmdBlkAddr = 0x90000;
* PLC540V_PCCC_PACKET_TYPE commandPacket= &pcccPacket;
* UWORD commandPacketSize = 0x200;
* PLC540V_PCCC_REPLY_TYPE replyPacket = &pcccReply;
* UWORD replyPacketSize = 0x100;
* UWORD baseAddress = 0xFC00;
* VME_INTERRUPT_LEVEL_TYPE cmdIntLevel = kVME_NO_INT_LEVEL;
* VME_DATA_WIDTH_TYPE width = kVME_D16_DATA_WIDTH;
* VME_ADDRESS_MODIFIER_TYPE addrMod = kVME_A24_ADDR_SPACE;
* UBYTE cmdStatusId = 0;
* PLC540V_STATUS_TYPE status;
* plc540v_send_pccc_command(
* vmeCmdBlkAddr,
* commandPacket,
* packetSize,
* replyPacket,
* replyPacketSize,
* baseAddress,
* cmdIntLevel,
* cmdStatusId,
* width,
* addrMod,
* &status);
*
* Copyright Allen-Bradley Company, Inc. 1993
*
****************************************************************************/
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)

{
/* The VME location of the PCCC packet. It will be placed directly
after the PCCC command block in memory.
*/
ULONG vmeCommandPacketAddr = (vmeCmdBlkAddr +

sizeof(PLC540V_SPCCC_CMD_TYPE));

/* The VME location of the reply packet. It must always be appended
after the PCCC command packet.
*/
ULONG vmeReplyPacketAddr = vmeCommandPacketAddr + pcccCommandPacketSize;

/* The continuous send PCCC command block. */
static PLC540V_SPCCC_CMD_TYPE pcccCmdBlk;

Advertising