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

Page 226

Advertising
background image

Sample API Modules

Appendix B

B-68

*
* RETURNS: Nothing.
*
* EXAMPLE:
* ULONG vmeCmdBlkAddr = 0xE0F100;
* UWORD baseAddress = 0XFC00;
* VME_DATA_WIDTH_TYPE width = kVME_D16_DATA_WIDTH;
* VME_ADDRESS_MODIFIER_TYPE addrMod = kVME_A24_ADDR_SPACE;
* PLC540V_PCCC_IHAS_RPY_TYPE reply;
* PLC540V_STATUS_TYPE status;
* void plc540v_pccc_IHAS(
* vmeCmdBlkAddr,
* baseAddress,
* width,
* addrMod,
* &reply,
* &status);
*
* Copyright Allen-Bradley Company, Inc. 1993
*
****************************************************************************/
void plc540v_pccc_id_host_and_status(

ULONG vmeCmdBlkAddr,
UWORD baseAddress,
VME_DATA_WIDTH_TYPE width,
VME_ADDRESS_MODIFIER_TYPE addrMod,
PLC540V_PCCC_IHAS_RPY_TYPE *reply,
PLC540V_STATUS_TYPE *status)

{
/* The Id Host & Status command packet. */
PLC540V_PCCC_IHAS_CMD_TYPE cmdPacket;

/* Let’s initialize these packet to nothing. */
memset((char *) &cmdPacket, 0x0, kPLC540V_PCCC_IHAS_CMD_SIZE);
memset((char *) reply, 0x0, kPLC540V_PCCC_IHAS_RPY_SIZE);
memset((char *) status, 0x0, sizeof(PLC540V_STATUS_TYPE));

/* Let’s establish the command packet contents... Note that
since we set this block with zeros originally, we don’t
need to explicitly set them here.
*/
cmdPacket.cmd = kPLC540V_PCCC_ID_HOST_STATUS_CMD;
cmdPacket.fnc = kPLC540V_PCCC_ID_HOST_STATUS_FNC;

plc540v_send_pccc_command(

vmeCmdBlkAddr,
&cmdPacket,
kPLC540V_PCCC_IHAS_CMD_SIZE,
reply,
kPLC540V_PCCC_IHAS_RPY_SIZE,
baseAddress,
kVME_NO_INT_LEVEL,
0,
width,
addrMod,
status);

}

Advertising