background image

Programming Examples

Appendix B

B-28

ktx_int.c file

/***************************************************************************

**

**      FILE – ktx_int.c

**

**      This file contains a routine for initializing and enabling

**      interrupts to service KTX interrupts and a routine that is a

**      boilerplate for a KTX scanner interrupt service routine

**                         

***************************************************************************/

#include <dos.h>

#include <assert.h>

#include ”ktx_dp.h”     /* 1784–KTX Scanner Dualport definition */

#include ”ktx_err.h”    /* 1784–KTX Scanner error codes         */

#include ”ktxconst.h”   /* 1784–KTX Scanner constants           */

#define LowPICPort 0x20

/* Port address for Prog. Interrupt Controller for ints 0–7 */

#define HighPICPort 0xA0

/* Port address for Prog. Interrupt Controller for ints 8–15 */

#define EOI 0x20

/* End Of Interrupt to PIC */

#define INT_PENDING_BIT 0x01

/* bit mask for interrupt pending bit in status register */

extern KTX_DUALPORT far *dp;

/* pointer to KTX’s dualport */

/***************************************************************************

**

**      void Init_interrupt (unsigned char InterruptNumber, void interrupt

**

(*InterruptServiceRoutine)())

**

**      This routine sets the interrupt vector and enables interrupts.

**      The host passes in two parameters: the interrupt number and

**      the interrupt service routine that will handle KTX interrupts.

**      The interrupt number must match the interrupt number selected

**      for this channel using the jumper on the KTX hardware.

**

**      INPUTS

**          KTX_DUALPORT far *dp – points to the base of the KTX dualport

**          UBYTE trans_num      – transaction_number

**          USHORT timeout       – time (in seconds) to wait for completion

**

**      OUTPUT

**          Interrupt Vector for KTX installed

**                         

***************************************************************************/

void interrupt (*OldInterruptServiceRoutine)();      /* pointer to store old interrupt handler */

void InitInterrupt(unsigned char InterruptNumber, void interrupt (*InterruptServiceRoutine)())

{

unsigned char

PICMask,

/* storage for prog. interrupt controller mask */

PICPortBase,

/* Port address of either first PIC or second PIC */

SWInterruptNumber;

/* Software Interrupt number, converted from HW */

/* Insure that InterruptNumber is valid one for KTX – leave in for debug only */

assert((InterruptNumber > 2) && (InterruptNumber < 16));

/* Set the base port of the Programmable Interrupt Controller depending on 

   whether the interrupt is on the first or second PIC */

if (InterruptNumber < 8) PICPortBase = LowPICPort;

else PICPortBase = HighPICPort;

/* Convert from hardware interrupt numbers (0–7) to software interrupt numbers

   0x8–0xf and hardware interrupt numbers (8–15) to software interrupt

   numbers 0x70–0x78  */

Allen-Bradley Parts

Summary of Contents for 1784-KTS

Page 1: ...1784 KTx Scanner Catalog Nos 1784 KTX KTXD and KTS Reference Manual Allen Bradley Parts...

Page 2: ...blication SGI 1 1 Safety Guidelines for the Application Installation and Maintenance of Solid State Control available from your local Allen Bradley office describes some important differences between...

Page 3: ...Shutdown 2 1 Chapter Preview 2 1 Using the KTx Memory mapped Hardware 2 1 Running Diagnostics on the KTx Card 2 3 Running the Host Compatibility Test 2 7 Loading the Protocol File 2 10 Initialization...

Page 4: ...us 6 1 Chapter Preview 6 1 Operating Status Word 6 2 Adapter Status Table 6 3 KTx Hardware Status Register 6 6 Using the LEDs as Status Indicators 6 6 Exception Error Handling 6 6 What s Next 6 9 Unde...

Page 5: ...Table of Contents iii KTx Hardware Registers C 1 Appendix Preview C 1 Glossary D 1 Appendix Preview D 1 Support Services 1 Allen Bradley Parts...

Page 6: ...UCCESS or INIT_IN_PROGRESS We designed the examples in this manual to introduce the application programmer to the host to KTx interface and commands The examples demonstrate all of the host to KTx com...

Page 7: ...eft to the application programmer Publication Title Pub No 1784 KTx Dual port Interface Specification Reference Manual 1784 6 5 21 1784 KTx Communication Interface Card User Manual 1784 6 5 22 1784 CP...

Page 8: ...of the scanner The scanner uses the remote I O protocol to communicate with Allen Bradley I O modules You don t have to know the specifics of the protocol to use the scanner with the I O modules but...

Page 9: ...n turn the adapter monitors and controls the I O modules through the backplane of the chassis You can combine chassis in any way that results in as many as 32 adapter addresses Host KTx Scanner Remote...

Page 10: ...ansmission of one or more 16 bit words in a particular format to or from an I O module A block transfer BT is the transmission of data to or from an intelligent I O module A BT read transfers informat...

Page 11: ...e adapter address is the address of the first I O group covered by the adapter divided by 2 This is numerically the same as rack x 4 starting group 2 where the rack and group are both numbered from 0...

Page 12: ...nk address comprise 3 4 of logical rack 4 Link address 10H Link address 11H Rack 4 Quarter 1 Rack 4 Quarter 2 Rack 4 Quarter 3 Quarter rack starting in first I O group 0 first quarter of rack number 4...

Page 13: ...changed through dual port RAM Both the host and the scanner can postpone servicing an interrupt if in the middle of another interrupt driven task The scanner maintains a scan list which is a list of a...

Page 14: ...he adapters are still instructed to hold discrete outputs reset but the scanner sends discrete information to them Block transfers can proceed in test mode but their outputs will be held reset In Run...

Page 15: ...point When next scanned by the scanner the adapter reports the new input information The scanner updates the input image table in the dual port RAM by setting the bit corresponding to the particular i...

Page 16: ...signates one or more groups of adapters such that if one adapter in a group is faulted the scanner instructs the others to be faulted also The command confirmation buffers are used to transfer scanner...

Page 17: ...ing sections describe memory mapped hardware bytes 0800h through 080Fh which may be needed by your driver Assert Release Z80 byte 0802h Write a 01h to this address to assert release the Z80 and begin...

Page 18: ...1 a hardware interrupt is currently asserted stays active till host writes 0x1 to 808 Host Interrupt Acknowledge byte 0808h Write a 01h to this address to acknowledge an interrupt from the KTx This wi...

Page 19: ...riggered interrupts 0 is the default When you cold boot the host PC you also restart the KTx card and place it in a reset state At this point the KTx card is ready for your driver to start the power o...

Page 20: ...This program performs a timing test on all KTx card CTC channels 3 Serial Input Output SIO Test file KTXST2 BIN This program performs a loopback test on the KTx card SIO Table 2 A shows the diagnosti...

Page 21: ...rt Start at 0000h Refer to the table below to determine which binary file to use If you are performing this test Copy this binary file RAM KTXST0 BIN CTC KTXST1 BIN SIO KTXST2 BIN 4 Write 01h to byte...

Page 22: ...M 1 and Dual port RAM See Table 2 C for CTC test status codes Table 2 C Status Codes for CTC Test CTC test status code Meaning of code 00h No Errors Detected 08h Failure of CTC Timer Mode 10h Failure...

Page 23: ...t If you run your card in 8 bit mode only you do not have to run M16 diagnostics M16 Diagnostics This diagnostic uses the extended M16 test mode of the KTx ASIC This test mode is operational only when...

Page 24: ...aced in extended M16 mode The ASIC should not be in standard mode because standard M16 mode is not implemented by current APIs as noted on page 2 7 Go to step 3 0 extended M16 operation Go to the next...

Page 25: ...to the 8 bit read of the high byte of the key Thus the returned data for the odd byte will be the pulled up ISA bus or 0xFF If a value other than 0xFF is returned in the high byte of the word then tes...

Page 26: ...by current APIs Now you can load the protocol file Read the next section for instructions To download the protocol your driver must transfer the loader file to the dual port load the protocol file Tr...

Page 27: ...ake byte 0075h t o 00h to signal the K T x s Z80 that your driver has loaded the next block into the dual port 4 Wait for the loader to return handshake byte 0075h t o 01h The Z80 is loading the block...

Page 28: ...Chapter 2 Start up and Shutdown 2 12 Table 2 E Loader Memory Map of Dual Port Host Dual port Address Dual port Contents 0000h 006Fh LOADPCL BIN 0070h Total Word low byte 0071h Total Word high byte 007...

Page 29: ...ware performs internal initialization self tests error occured during initialization writes error code in init_status interrupts host halts its processor turns off LED interrupts host waits for host c...

Page 30: ...ner at any time by writing any value to the KTx Deassert Register Shutdown can be verified by reading the KTx Status register which should show the card in the Reset state Chapter 3 describes programm...

Page 31: ...017h Dual port common area 018h 07bh Reserved 07ch 07fh Misc scanner variables 080h 1ffh Adapter status table 200h 2ffh Command buffer 300h 3ffh Confirmation buffer 400h 5ffh Input image table 600h 7f...

Page 32: ...fies the host of the completion status whether successful or not via the confirmation buffer Some handshaking between the host and scanner is required to coordinate use of these buffers The handshakin...

Page 33: ...firmation becomes non empty AND the host has acknowledged the last confirmation the KTx copies a confirmation into the confirmation buffer On receipt of interrupt copies the next confirmation into the...

Page 34: ...DOS host KTx Host Convert hardware interrupt number to software interrupt number Save the old interrupt vector Set the new interrupt vector Set the appropriate bit in the PIC to a zero In the interrup...

Page 35: ...t controller mask PICPortBase Port address of either first PIC or second PIC SWInterruptNumber Software Interrupt number converted from HW Insure that InterruptNumber is valid one for KTX leave in for...

Page 36: ...ce handler define LowPICPort 0x20 Port address for Prog Interrupt Controller for ints 0 7 define HighPICPort 0xA0 Port address for Prog Interrupt Controller for ints 8 15 define EOI 0x20 End Of Interr...

Page 37: ...list interrupt next since it is also time critical 1 make sure it s enabled 2 if so see if we got an end of scan list interrupt 3 if so acknowledge it if dp config_data interrupt_after_each_scan dp ru...

Page 38: ...provided show how to do it when the application waits for a confirmation before proceeding to the next command An asynchronous version would need to match up confirmations with pending commands using...

Page 39: ...tus byte confirmation_length byte data NOTE Confirmations will always start at the first byte of the Confirmation Buffer in dual port memory The 1784 KTx responds to every command with a confirmation...

Page 40: ...or Run In this mode the scanner Program updates the input image table but does not send outputs to the adapters Test sends I O reset commands outputs are inactive and block transfers Run sends I O co...

Page 41: ...1784 KTX scanner dualport definition include ktx_err h 1784 KTX scanner error codes include ktxconst h 1784 KTX scanner constants UBYTE set_mode KTX_DUALPORT far dp UBYTE mode UBYTE trans_num USHORT...

Page 42: ...wants to scan it more often than other addresses in the list The Set Scan List command replaces an existing scan list and can be performed only when the scanner is in Program mode Command Syntax host...

Page 43: ...the data byte of the confirmation A FDG orphan occurs when an adapter in the previous scan list was in a fault dependent group but that adapter s address is not in the new scan list BAD_COMMAND_DATA_...

Page 44: ...int_status_from_host SCANNER_COMMAND_FROM_HOST dp host_to_ktx_int_reg INTERRUPT_KTX Get and process the confirmation status get_confirmation dp trans_num timeout switch status break if no confirmation...

Page 45: ...d confirmation_status see Table 4 C confirmation_length 0 data N A Table 4 C Autoconfigure Error Conditions Error Mnemonic Code Description SUCCESS 0 Scan list was valid SCANNER_NOT_PROGRAM 15 Scanner...

Page 46: ...s_num USHORT timeout UBYTE status Initialize the command buffer dp cmd_buffer host_command AUTOCONFIG dp cmd_buffer transaction_num trans_num dp cmd_buffer command_length 0 Send the command dp int_sta...

Page 47: ...ntax host_command 6 transaction_number 0 255 command_length 128 fault_group_data 128 bytes as defined above This command queues a confirmation immediately The confirmation looks like this Set Fault Gr...

Page 48: ...X_DUALPORT far dp SET_FAULT_GROUP_CMD fdg UBYTE trans_num USHORT timeout UBYTE status Initialize the command buffer dp cmd_buffer host_command SET_FAULT_GROUP dp cmd_buffer transaction_num trans_num d...

Page 49: ...mber 0 255 command_length 0 This command queues a confirmation immediately The confirmation looks like this Get Scan List Confirmation host_command 7 transaction_number 0 255 whatever host supplied co...

Page 50: ...UPT_KTX Get and process the confirmation status get_confirmation dp trans_num timeout switch status break if no confirmation was available case CONFIRMATION_TIMED_OUT break break if the transaction nu...

Page 51: ...fer Here is the sequence of actions involved in completing a BT Your program initializes the KTx command buffer with BT command data Your program interrupts the KTx letting it know it is a command int...

Page 52: ...st supplies 16 words of data in bt_write_data sets bt_data_len to 0 for Adapter Decide Length and sets command length to 35 3 2 16 The scanner notifies the adapter that it wants to perform an ADL BT W...

Page 53: ...You can specify 0 63 if you specify 0 the adapter decides the data length This command queues a confirmation when the block transfer exchange is completed i e it has received a BT reply packet from t...

Page 54: ...n progress BT_QUEUE_FULL 31 Already 64 BT requests pending BT_REQUEST_TIMEOUT 36 BT exchange between scanner and adapter did not complete within 4 seconds USER_MODULE_REQUEST_TYPE_MISMATCH 38 Host req...

Page 55: ...ENGTH if bt_buf count ADAPTER_DECIDE_LENGTH size 64 else size bt_buf count dp cmd_buffer command_length 3 2 size dp cmd_buffer cmd bt_write module_slot_address slot_number Convert link address to logi...

Page 56: ...efore the BT exchange with the adapter completes the BT request is cancelled and a confirmation is returned to the host indicating there was a BT timeout Command Syntax host_command 5 transaction_numb...

Page 57: ...63 words were specified TOO_MANY_REQUESTS_FOR_MODULE 30 This module already has a BT in progress BT_QUEUE_FULL 31 Already 64 BT requests pending BT_REQUEST_TIMEOUT 36 BT exchange between scanner and a...

Page 58: ...address link_address 2 dp cmd_buffer cmd bt_read bt_data_length bt_buf count Send the command dp int_status_from_host SCANNER_COMMAND_FROM_HOST dp host_to_ktx_int_reg INTERRUPT_KTX Get and process the...

Page 59: ...time T Effective Number of Scans x Scan List Length x Time per Scan Number of BTs x Time per BT Number of Words x Time per Word where T is the time it takes to complete all block transfers that are q...

Page 60: ...scanner s scan list For example if the number of scans to service an adapter s BTs is 11 and the adapter appears in the scan list 4 times then the effective number of scans to service that adapter is...

Page 61: ...ts the scanner know that your program is still active You should also be able to diagnose the cause of an unrecoverable error understand LEDs light emitting diodes The scanner maintains status informa...

Page 62: ...d for Allen Bradley use only 4 unsolicited_bt Unsolicited BT request received 5 bt_pending BT in progress 6 fault_exists At least one adapter is faulted 7 fault_changed A faulted adapter went back on...

Page 63: ...size of the the adapter s rack distinguish between node adapters and standard adapters This table defines the bits of the adapter configuration byte Bit Mnemonic Description 0 in_scan When set this bi...

Page 64: ...arge count in this byte indicates the adapter is not communicating reliably with the scanner The scanner will retry a discrete I O command to an adapter two times If the adapter fails to respond with...

Page 65: ...tate UBYTE link_address UBYTE link_protocol UBYTE link_baud_rate UBYTE reserved1 CONFIG_DATA config_data UBYTE init_status RUNNING_STATUS running_status UBYTE int_status_to_host UBYTE int_status_from_...

Page 66: ...cking for errors in the KTx host interface on the remote I O link and in its own hardware and firmware Most errors are recoverable errors i e the scanner detects and reports the error and continues pr...

Page 67: ...te Node Failure Exactly one scanner is required to operate a remote I O link If the KTx scanner detects the presence of another scanner on the link it writes TRUE 0x01 in duplicate_node in the dual po...

Page 68: ...ill cause the scanner to reset the watchdog timer and begin timing again The host s handshake with the scanner consists of writing 00h in alive_flag in the dual port The scanner returns the handshake...

Page 69: ...scanner if enabled If the scanner is dead this routine resets the clock interrupt handler prints a message and exits Example 6 B Interrupt Service Routine void interrupt KTX_watchdog If accumulated p...

Page 70: ...o the output image table bytes that correspond to intelligent I O block transfer modules If you do write to these bytes you ll be unintentionally requesting a block transfer For more details see chapt...

Page 71: ...r you can use a one bit mask like this if input_image_table 4 1 5 1 012 This doesn t look much better than the previous construct but if you define symbolic constants as we recommend the code becomes...

Page 72: ...the outside world Though we talk about output in this section the same timing applies to input it takes as long for a new input value to find its way from the input module to your program as it does...

Page 73: ...ntally overwriting another adapter s output image Example 7 A include ktx_dp h 1784 KTX Scanner Dualport definition include ktx_err h 1784 KTX Scanner error codes include ktxconst h 1784 KTX Scanner c...

Page 74: ...PORT far dp UBYTE link_address IO_BUFFER io TABLE_NAME io_table int i xfer_size UWORD far q UBYTE status SUCCESS ADAPTER_CONFIG_INFO far p Validate the input parameters if link_address 127 return INVA...

Page 75: ...ost should first check cos_link_address If the value in cos_link_address is not FFh a COS interrupt occurred and the value in cos_link_address is the adapter address that had an input state change Whe...

Page 76: ...t 13 in operating_status in the dual port See appendix A The host can enable the scanner to interrupt the host at the end of each pass through the scan list The host enables this mode by setting the i...

Page 77: ...host at the end of each time through the scan list Bit 1 reserved Bit 2 when high the scanner will interrupt the host whenever there is a change in the Input Image Table Bits 3 7 unused 00A init_stat...

Page 78: ...address of the adapter that had a change of state will be written here by the scanner The host must clear this by writing an 0FFh 01B unused 65H 07C num_adapter_addresses 1 R R W Number of adapters on...

Page 79: ...Byte Bits 0 3 fault_group_number Bit 4 in_fault_group Bit 5 adapter_online Bit 6 adapter_group_faulted Bit 7 undefined Adapter Retry Count Byte Bits 0 7 cumulative count of retries to this adapter Se...

Page 80: ...B 14 init_ktx c start up scanner binary B 16 put_data c write data to output image table B 17 read_iot c read data from input image table B 18 set_mode c set scan mode command B 19 setscanl c set scan...

Page 81: ...e advantage of the KTx s ability to interrupt the host when a host to KTx command reaches completion Some commands such as block transfers are given 4 seconds by the KTx to complete their tasks before...

Page 82: ...AR short CONFIG_DATA defines the bits associated with the config byte The host can use this byte to control the behavior of the scanner firmware The bits are active high typedef struct UBYTE interrupt...

Page 83: ...2 UBYTE node_adapter 1 UBYTE undefined 2 ADAPTER_CONFIG_INFO ADAPTER_FAULT_INFO this structure contains fault configuration and operating information and for an adapter typedef struct UBYTE fault_gro...

Page 84: ...typedef struct UBYTE host_command UBYTE transaction_num UBYTE command_length union SET_MODE_CMD set_mode SET_SCAN_LIST_CMD set_scan_list AUTOCONFIGURE_CMD autoconfig BT_WRITE_CMD bt_write BT_READ_CMD...

Page 85: ...g_status ADAPTER_STATUS adapter_status_table 128 COMMAND cmd_buffer CONFIRMATION confirmation_buffer UWORD input_image_table 256 UWORD output_image_table 256 The following are KTX hardware registers T...

Page 86: ...IST 28 define BT_BAD_DATA_LENGTH 29 define TOO_MANY_REQUESTS_FOR_MODULE 30 define BT_QUEUE_FULL 31 define ADDRESS_NOT_IN_SCAN_LIST 32 define CANNOT_SET_FG_WHILE_AUTOCONFIGURING 33 define CANNOT_SET_FG...

Page 87: ...K_115_KBAUD 0xFD define LINK_57_KBAUD 0xFC int_status_to_host values define NO_KTX_INT_AVAILABLE 0 define INIT_DONE_INTERRUPT 1 define CONFIRMATION_INTERRUPT 2 define PROCESSING_PROBLEM_INTERRUPT 3 in...

Page 88: ...30 4 Autoconfiguration can take up to define AUTO_TMO_115 8 several seconds depending on the define AUTO_TMO_57 13 baud rate and of link devices define SETSCAN_TMO_230 2 Configuring a new scan list de...

Page 89: ...ion prototype declaration int main int argc char argv This routine calls a series of example subroutines which return a completion status No effort is made to examine the status and handle unsuccessfu...

Page 90: ...ber 0 fdg i in_fault_group FALSE fdg 0x0E fg_number fdg 0x13 fg_number 1 fdg 0x0E in_fault_group fdg 0x13 in_fault_group TRUE status set_fault_dependent_group dp SET_FAULT_GROUP_CMD fdg trans_count SE...

Page 91: ...ut count i out data i status put_output_data dp 0x0E out Write the output image table for 0x13 quarter rack for i 0 out count QUARTER_RACK_SIZE i out count i out data i status put_output_data dp 0x13...

Page 92: ...intf s a message and exits void interrupt KTX_watchdog If accumulated preset check alive_flag if wdg_accum wdg_preset if dp alive_flag KTX_ALIVE Setting this to FALSE will allow main routine to drop o...

Page 93: ...784 KTX Scanner Dualport definition include ktx_err h 1784 KTX Scanner error codes include ktxconst h 1784 KTX Scanner constants UBYTE get_confirmation KTX_DUALPORT far dp UBYTE trans_num USHORT timeo...

Page 94: ...the confirmation INPUTS KTX_DUALPORT far dp points to the base of the KTX dualport OUTPUT none void acknowledge_confirmation KTX_DUALPORT far dp dp confirmation_buffer host_command 0 zero confirmatio...

Page 95: ...de ktx_err h 1784 KTX Scanner error codes include ktxconst h 1784 KTX Scanner constants UBYTE initialize_KTX KTX_DUALPORT far dp UBYTE link_baud_rate USHORT timeout int i UBYTE status time_t t0 UBYTE...

Page 96: ...o the base of the KTX dualport UYBTE link_address address of device whose data is to be written IO_BUFFER io if successful I O data will be copied from this this variable into dualport OUTPUT UBYTE st...

Page 97: ...completion status of the command include ktx_dp h 1784 KTX Scanner Dualport definition include ktx_err h 1784 KTX Scanner error codes include ktxconst h 1784 KTX Scanner constants UBYTE get_IO_data KT...

Page 98: ...nition include ktx_err h 1784 KTX scanner error codes include ktxconst h 1784 KTX scanner constants UBYTE set_mode KTX_DUALPORT far dp UBYTE mode UBYTE trans_num USHORT timeout UBYTE status Initialize...

Page 99: ...clude ktx_err h 1784 KTX scanner error codes include ktxconst h 1784 KTX scanner constants UBYTE set_scan_list KTX_DUALPORT far dp SCAN_LIST sl UBYTE orphan UBYTE trans_num USHORT timeout UBYTE status...

Page 100: ...mming Examples Appendix B B 21 if a different error occurred or SUCCESS acknowledge the confirmation and return the status to the caller case SUCCESS default acknowledge_confirmation dp break return s...

Page 101: ...mpletion OUTPUT UBYTE status completion status of the command include ktx_dp h 1784 KTX scanner dualport definition include ktx_err h 1784 KTX scanner error codes include ktxconst h 1784 KTX scanner c...

Page 102: ...slot_number UBYTE link_address BT_BUFFER bt_buf UBYTE trans_num USHORT timeout UBYTE status int i size Initialize the command buffer dp cmd_buffer host_command BT_WRITE dp cmd_buffer transaction_num t...

Page 103: ...bt_buf UBYTE trans_num USHORT timeout int i UBYTE status Initialize the command buffer dp cmd_buffer host_command BT_READ dp cmd_buffer transaction_num trans_num dp cmd_buffer command_length 3 dp cmd_...

Page 104: ...Programming Examples Appendix B B 25 if an error occurred acknowledge the confirmation and return the status to the caller default acknowledge_confirmation dp break return status...

Page 105: ...h 1784 KTX scanner dualport definition include ktx_err h 1784 KTX scanner error codes include ktxconst h 1784 KTX scanner constants UBYTE set_fault_dependent_group KTX_DUALPORT far dp SET_FAULT_GROUP...

Page 106: ...t i UBYTE status Initialize the command buffer dp cmd_buffer host_command GET_SCAN_LIST dp cmd_buffer transaction_num trans_num dp cmd_buffer command_length 0 Send the command dp int_status_from_host...

Page 107: ...e that will handle KTX interrupts The interrupt number must match the interrupt number selected for this channel using the jumper on the KTX hardware INPUTS KTX_DUALPORT far dp points to the base of t...

Page 108: ...TX scanner to interrupt on input change of state and at the end of each pass through the scan list It assumes that more than one interrupt can be received at a time i e that because the KTX interrupts...

Page 109: ...t 3 if so acknowledge it if dp config_data interrupt_after_each_scan dp running_status end_of_scan_list Acknowledge the end_of_scan_list interrupt dp running_status end_of_scan_list FALSE The applicat...

Page 110: ...r a confirmation before proceeding to the next command An asynchronous version would need to match up confirmations with pending commands using the transaction number and acknowledge the confirmation...

Page 111: ...LOADPCL_DATA_WINDOW 0x80 define LOADPCL_HANDSHAKE 0x75 define LOADPCL_SIZE 0x72 define LOADPCL_LENGTH 0x70 define LOADPCL_STATUS 0x74 void usage char argv int main int argc char argv char far base int...

Page 112: ...NLY 1 printf Error opening CLRRAM BIN n exit 1 Read the bytes from the file directly into dual port ram length read ifile base 0x800 Close the file close ifile Start the KTX running to execute the CLR...

Page 113: ...different else base LOADPCL_HANDSHAKE 0 Not the first pass through so set byte to zero to tell loadpcl bin that another chunk of data is ready to be transferred Wait for loadpcl bin to indicate it is...

Page 114: ...n if strrchr argv 0 printf s a xx f nnnnnnnn eee d n strrchr argv 0 1 else printf s a xx f nnnnnnnn eee d n argv 0 printf Where xx Upper byte of address of KTX board e g D3 n printf nnnnnnnn eee File...

Page 115: ...x microprocessor is halted Bit 7 Reset When clear the KTx microprocessor is in the Reset state 805h key_0_write_reg Write See description of M16 test 807h key_1_write_reg Write See description of M16...

Page 116: ...density module Discrete I O module having 16 input or output points Input image table An area of memory that monitors input terminals of input modules When an input switch is closed its corresponding...

Page 117: ...t words 4096 points are available Programmable interrupt controller PIC The logic on the PC s motherboard that handles interrupts Quad density module Discrete I O module having 32 input or output poin...

Page 118: ...manual accessibility info not in manual text illustration Technical Accuracy Completeness What information is missing Clarity Sequence What is not in the right order What is unclear Other Comments Us...

Page 119: ...ERE PLEASE REMOVE NO POSTAGE NECESSARY IF MAILED IN THE UNITED STATES BUSINESS REPLY MAIL First Class Mail Permit No 18235 Cleveland OH POSTAGE WILL BE PAID BY ADDRESSEE TECHNICAL COMMUNICATION 747 AL...

Page 120: ...re and documentation updates technical subscription services Engineering and Field Services application engineering assistance integration and start up assistance field service maintenance support Tec...

Page 121: ...nable disable detection 7 6 exceptions 7 6 host KTx handshaking 7 6 input detection 7 6 time constraints 7 7 check mode 2 8 command interface 3 2 command syntax 4 1 commands See host commands commands...

Page 122: ...les 3 2 I O modules 1 2 I O rack number defined D 1 I O update defined D 2 initialization 2 12 host responsibilities 2 12 KTx responsibilities 2 13 initialization failure 6 6 input image table defined...

Page 123: ...codes 2 11 loading protocol file 2 10 publications related P 2 Q quad density module defined D 2 R RAM dual port 1 6 1 7 failure 6 7 program failure 6 7 random access memory test 2 4 reference materia...

Page 124: ...ompletion 5 9 timing formula 5 9 timing of discrete I O 7 3 two slot addressing defined D 2 U unrecoverable errors 6 6 unsigned 7 1 unsolicited block transfer 5 10 W watchdog scanner 6 8 Z Z80 assert...

Page 125: ...iwan Thailand The Netherlands Turkey United Arab Emirates United Kingdom United States Uruguay Venezuela Yugoslavia World Headquarters Allen Bradley 1201 South Second Street Milwaukee WI 53204 USA Tel...

Reviews: