Controller programming apparatus and process using ladder diagram technique

Abstract: A method and apparatus are provided for creating a ladder program for a programmable controller by incorporating into the ladder program (52) a common ladder diagram (51) previously created and stored in a storage means (23). Means (5a, 7a) are provided for reading a device comparison table (53) from the storage means (23), which relates the first type device numbers (FD) used in the common ladder diagram (51) to second type device numbers used by the ladder program (52) to be created. In addition, editing means (6a) replace the first type device numbers (FD) with the corresponding second type device numbers obtained from the device comparison table (53), whereafter the edited common ladder diagram (51) is incorporated into the ladder program (52) to be created.

Description: The present invention relates to a process of programming a programmable controller (hereinafter referred to as a "PC"). In particular, the invention concerns a method and apparatus for writing a ladder diagram for display on a CRT screen. Figure 1 is a block diagram showing the conventional hardware configuration of a PC programming unit. In. Figure 1, a microprocessor 21 is connected by a bus 20 to a main storage device 22 comprising RAM, ROM, an auxiliary storage device 23 such as a hard disk or a floppy disk, a keyboard 24, acting as an input means, a display device 25, and a printer 26. Figure 2 is a block diagram illustrating the flow of processing and data during the writing of a ladder diagram in a conventional programming unit. Referring to Figure 2, the keyboard 24 is used to input data, which is temporarily stored in a keyed-in data buffer 12. The buffer 12 is connected to a ladder symbol data extraction processor 13 for extracting a ladder symbol part from the input data in the keyed-in data buffer 12, and to a device name extraction processor 14 for fetching a device name from the input data in the keyed-in data buffer 12. An instruction code conversion processor 15 communicates with the ladder symbol data extraction processor 13 and converts the ladder symbol data into a PC instruction. Similarly, a device code conversion processor 16 communicates with the device name extraction processor 14 and converts device name data into an internal code. Both of the code conversion units 15 and 16 provide outputs to screen image table creation processor 17, which generates data for displaying the ladder diagram on the display device 25 in accordance with the data obtained in the code conversion process conducted by the units 15 and 16. A block position control processor 18 is operative to indicate the position on the display device 25 where the ladder diagram image is to be created, and is responsive to inputs of line and column data from code conversion unit 15. Information from screen image table creation processor 17 is used to update the information stored in processor 18. A screen display data converter 19 will convert screen image table data from processor 17 for display on the display device 25 and will control display of that data at specified locations on the screen of display device 25. Figure 3 illustrates a display screen 70 having a ladder area 71, along with ladder symbol and keyed-in data display area 72. For each of screens 70A-70F, there is illustrated the sequence of key strokes used and display screens created during the writing of a ladder diagram in the conventional programming unit. This figure, together with the other aforementioned drawings may be used to explain the operation of the conventional unit in creating a PC program using the ladder diagram technique. Referring to Figure 1, the microprocessor 21 runs a control program stored in the main storage device 22. The control program is designed to permit the programming unit to enter a PC program creation mode when a new program is to be written using the ladder technique. Once in the PC program creation mode, the operator can enter a sequence of, commands, by pressing designated keys on the keyboard to enter ladder symbols and specify the identity of PC devices. Specifically, with reference to Figure 3, with the cursor 73 at a desired display location (here, at the start of a screen), a key on the keyboard 24 corresponding to a ladder symbol 101 is pressed, which will result in a display of the ladder symbol in the keyed-in data display area 72, as seen in the screen 70A, and then keys (here, X, O) for specifying a PC device are pressed and the keyed data is displayed in keyed-in data display area 72, as seen on screen 70B, and simultaneously the keyed-in data is stored into the keyed-in data buffer 12. By pressing a return key 104 on the keyboard 24, the data in the keyed-in data buffer 12 is output to the symbol part extraction processor 13 and the device name extraction processor 14. The symbol data is converted into an instruction code by the instruction code conversion processor 15 according to preceding and succeeding states of the ladder diagram. The device name data is checked for proper PC specifications and input format by the device code conversion processor 16, and then converted into an internal processing code. The first ladder element and device name are then displayed as seen in screen 70C, with the aid of elements 17-19. The keyed in display data area 72 is cleared at this time. The next ladder element is similarly displayed in area 72 by pressing key 105, as illustrated in screen 70D, and the next device is displayed by pressing the appropriate keys, as illustrated in screen 70E. After processing in the manner above described, the ladder symbol and device identification are inserted at the cursor 73 position after pressing return key 104, as seen in screen 70F. Figure 4 shows a detailed view of the ladder diagram create/edit area 71 on display screen 70 of Figure 3. The display area is separated into a plurality of blocks, defined by the matrix of dotted lines, in which ladder symbols and device numbers are displayed. As seen in Figure 4, each row of blocks is identified by a line number (1, 2, 3, . . .m) and each column of blocks is identified by a column number (1, 2, 3, . . .n). Each block can contain the identification of a device (XO, X1, X2, X3, . . .Y10), an appropriate ladder symbol, and/or connector lines. The screen image table, shown in Figure 5A, is created in the main storage device 22, in correspondence with the line and column positions of the blocks. After the block position control processor 18 has calculated the address in the screen image table in accordance with the line and column positions indicated by the cursor 73 in the ladder diagram create/edit area 71, the ladder data converted into an instruction code and the device data converted into a device code are stored together, in the format of Figure 5B, in the corresponding screen image table by the screen image table creation processor 17. At the same time , the table creation processor 17 provides the block position controller 18 with a command to progress to the next line or column position. The data in the screen image table is converted into data displayable on the display device 25 by the screen display conversion processor 19 and displayed on the display device 25 in a predetermined format. By repeating the foregoing operation, via a sequence of keying operations and screen displays as previously described in Figure 3, the data entered from the keyboard 24 is displayed on the display device 25 and the ladder diagram is created. Figure 15 is a block diagram illustrating registration and reutilization of a "common" ladder diagram in the conventional unit. Referring to Figure 15, the numeral (24) indicates an input means such as a keyboard, (2a) a control means for controlling internal operation in accordance with input data, (3a) a ladder program writing means, (4a) a ladder diagram writing means for fetching a common ladder diagram from a ladder program, and (7a) an auxiliary storage device read/write means for transferring data to and from the auxiliary storage device (23). Operation of the block diagram shown in Figure 15 will now be described. A PC ladder diagram is written by entering ladder symbols and device numbers of the PC from the keyboard (24) by means of the control program stored in the main storage device (22) and the results are displayed on the display device (25). The written program is sequentially converted inside the main storage device (22) into a program executable by the corresponding PC. After this conversion, the program can be stored in the auxiliary storage device (23) and/or output to the printer (26). If a like ladder pattern is repeated during writing of the ladder program or if there is a ladder block usable by another PC, a "common" ladder diagram area can be cut from the ladder program as written using the common ladder diagram writing means (4a) and written to the auxiliary storage device (23) via the auxiliary storage device read/write means (7). When that common ladder diagram area is required later during writing of the ladder program, it can be read from the auxiliary storage device (23) through the auxiliary storage device read/write means (7) and inserted into the ladder program currently being written. Thus a library of commonly used ladder diagram areas or segments may be maintained in storage device (23). Figure 16 shows the device and sequence of screens and data displayed during the above conventional operation. In Figure 16, the area of the common ladder diagram enclosed by the dotted line is written to the auxiliary storage device (23) using the writing means (4a) and the auxiliary storage device read/write means (7a). Later, the common ladder diagram is read from the auxiliary storage device (23) through the auxiliary storage device read/write means (7a) and added to the program currently being written. As previously noted in Figure 3, the entered ladder symbol and the specified device are displayed in the ladder diagram create/edit area and the cursor moves to the next block. However, the prior art programming unit configured as described above has a disadvantage in that a programmer cannot write a ladder diagram in terms of logical operation expressions because one device must be specified for each symbol. Also, the conventional programming process described above has the disadvantage that device numbers in an already registered common ladder diagram must be corrected in accordance with the PC devices in the program now being written if that common ladder diagram is to be reutilized. The object of the present invention is to provide a PC programming process and apparatus which will allow programs to be written using already-registered common ladder diagram portions without regard to the PC system configuration. According to the present invention, a method and an apparatus for creating a ladder program are provided as defined in claims 1 and 4, respectively. A common ladder diagram editor means replaces the device designations specified in the stored common ladder diagram segment with the actual devices used by the PC in accordance with the data in a device comparison table stored in the auxiliary storage device. After the replacement of the device designations is complete, the common ladder diagram is incorporated into the ladder program being written. Figure 1 is a block diagram of the hardware of a conventional PC programming unit. Figure 2 is a block diagram showing data and processing flows in the conventional programming unit. Figure 3 is a transition diagram of pressed keys and screens in the conventional unit. Figure 4 illustrates a ladder diagram edit screen for performing display conversion processing in the conventional unit. Figure 5A is a diagram showing the configuration of a screen image table used in the conventional unit and Figure 5B is a illustration of a stored data format. Figure 6 is a block diagram illustrating the flow of data processing in a PC programming unit. Figure 7 is a transition diagram of pressed keys and screens for an AND function. Figure 8 is an illustration of a transition diagram of pressed keys and screens for an OR function. Figure 9 is a function block diagram of a programmable controller programming unit according to the invention. Figure 10 is a flowchart illustrating the processing of inserting a common ladder diagram into a ladder program in the present invention. Figures 11 to 14 are diagrams illustrating the process shown in Figure 10. Figure 15 is a function block diagram illustrating a conventional way of writing and using the common ladder diagram. Figure 16 is a diagram illustrating a flow of data in the conventional unit. In the foregoing drawings, like reference characters designate like or corresponding parts throughout the several views. Figure 6 is a block diagram illustrating the flow of processing and data in writing a ladder diagram. In Figure 6, the elements identified by reference numerals 12 to 19, 24 and 25 are identical to those in the conventional unit. Added to that structure is an operator extraction processor 11 for extracting an operator code from the input data in the keyed-in data buffer 12. An example of processing making use of the processor 11 will now be given, although not part of the present invention. The flow of data and processing in Figure 6, and this example of the operation of the extraction processor 11 is illustrated in Figure 7 and 8. In the basic system of Figure 1, the microprocessor 21 runs a control program, stored in the main storage device 22, which is designed to permit the programming unit to enter a PC program write mode, having a ladder diagram write mode. In the ladder diagram write mode, a cursor is displayed at a position where a ladder diagram symbol is to be entered. When a ladder symbol, for example the "-¦¦-" key on keyboard 24 is pressed in this mode, the keyed-in data is displayed in the keyed-in data display area 72 of CRT 25 and temporarily stored in the keyed-in data buffer 12. Then, when both X0 and X1 are entered as the names of devices, using the single sequence X0 * X1, the keyed-in data is similarly displayed in the keyed-in display data area 72 as shown in screen 70B' and stored in the keyed-in data buffer 12. Finally, when the return key is pressed, the data in the keyed-in buffer 12 is transmitted to the ladder symbol part extraction processor 13, the device part extraction processor 14 and the operator extraction processor 11. In the ladder symbol part extraction processor 13, the ladder symbol is extracted. In the device part extraction processor 14, the devices X0 and X1 joined together by the operator are extracted and held individually. In the instruction code converter 15, an instruction code is generated in accordance with the operator extracted by the operator extractor 11. Since the operator Code "*" represents an AND, the ladder symbol and the operator are converted into instruction codes relevant to instruction "LD" (load), corresponding to the ladder symbol -¦¦-, and instruction "AND" corresponding to the extracted operator "*", respectively. In the device code converter 16, the devices X0 and X1 extracted by the device part extraction processor 14 are converted into respective internal processing codes. Completion of the above processing initiates the operation of screen image table creation processor 17. The screen image table creation processor 17 combines the first "LD" instruction with the first device name "X0" and stores it an address in the screen image table shown in Figure 5A relevant to line and column positions of the ladder display/edit area of Figure 4 indicated by the cursor 73 on the display screen. In the instruction code converter 15, the "AND" instruction is combined with the device name "X1" and stored at a relevant address of the screen image table shown in Figure 5A. Since, in the expression of ladder language, an "AND" is represented by simply stringing together the ladder symbols, the processor 17, upon recognizing the presence of an AND operator, controls the block position controller 18 so as to advance the column position by +1 for display of a second "-¦¦-" and the associated device X1. Thus, the final display correctly appears, as shown in screen 70C', with two ladder symbols connected in "AND" fashion, together with the devices X0, X1. Through this processing, it becomes unnecessary for the operator to enter the "-¦¦-" symbol key twice when inputting the program instructions, or to use the prior complicated process of keying in sequences of logical operation. Note that more keystrokes were required in Figure 3 than in Figure 7 for the same instruction sequence, and that the savings increases as the logical sequence becomes more complex. Figure 8 shows the sequence of operations upon entry of an "OR" instruction, wherein the internal processing is identical to that described previously, with the exception that +1 is added to the line position data in Figure 8 by the table creation processor 17. In the expression of ladder language, an "OR" is indicated by a parallel ladder symbol (see screen 70C''). Thus, it is necessary for the processor 17 to advance the line count in order to properly display the second ladder symbol "-¦¦-" and the second device name X1 in the case of the "OR" instruction. The OR operator is recognized by the processor 176 for this purpose. The line count is returned to its original value after processing the OR operator, so that other symbolic instructions can be indicated on the original line, provided that sufficient column space exists in the given line. Note the cursor position in screen 70C''. In any case, the data of the screen image table is converted into data displayable on the display device by the screen display data conversion processor 19 and displayed on the display screen as the final result of the processing begun by pressing the return key as shown in figures 7 or 8. It will be appreciated that any key indicating termination of entry, e.g., and END key or the like, may be employed instead of the return key in the foregoing embodiment, as the trigger to begin processing the input. Figure 9 is a block diagram illustrating an embodiment of the apparatus for registration and utilization of a common ladder diagram portion once it is created on the display device (25). The numerals (23), (24), (2a) to (4a) and (7a) indicate the same parts as those of the prior art in Figure 15. (5a) indicates a device comparison tabulating means for creating a comparison table between device names used in the common ladder diagram and those actually used by the current PC. (6a) is a common ladder diagram editing means for replacing the device numbers used in the common ladder diagram in accordance with data from the device comparison table and inserting the ladder program into the original program. Operation of the registration and utilization of the common ladder diagram according to one embodiment will now be described with reference to Figures 10 to 14. Figure 10 is a flowchart of a program stored in the main storage device (22) shown in Figure 1 by the common ladder diagram writing means (4a) shown in Figure 9. Figure 11 shows an example of a screen displaying a common ladder diagram that is read from the auxiliary storage device (23) using the common ladder diagram writing means (4a). Figure 12 shows an example of a screen illustrating setting of the actual device names using the device comparison tabulating means (5a). Figure 13 illustrates overall operation of the present invention. The common ladder diagram writing means (4a) writes a ladder diagram in a manner similar to the ladder program writing means (3a). However, the ladder program writing means (3a) uses a device number, corresponding to the actual devices employed by the PC, in the ladder program. In contrast, the common ladder diagram writing means (4a) uses fixed device numbers (designated by "FD" in this embodiment), which differ from the actual device numbers used in writing the ladder program. In order for the common ladder diagram segment to be compatible with the ladder program being created, the fixed device numbers in the common ladder diagram must be converted to actual device numbers. An example of a common ladder diagram, along with its dedicated device numbers, is indicated by the area enclosed by the dotted line (51) in Figure 13. The common ladder diagram, after being written, is provided with a serial number and stored in the auxiliary storage device (23) so that it may be recalled when desired. A setting screen as shown in Figure 12 is displayed on the display device (25) so that actual device numbers corresponding to the fixed devices FD used by the PC may be entered through the input means (24). Then, the device comparison tabulating means (5a) creates a device comparison table relating the device configuration of the PC for which a program is currently being written to the fixed device names used in the stored ladder segments. A comparison table can be created for each type of PC device configuration, and thus the stored ladder segments can be used for any configuration after conversion. The comparison tables may themselves be stored in auxiliary storage device (23) via auxiliary storage read/write means (7a). When a common ladder diagram stored in the auxiliary storage device (23) is used during writing of the PC ladder program, the common ladder diagram editing means (6a) is activated by input means (24), which may be in the form of a keyboard, via the control means (2a). A sequence of this operation will be described according to the flowchart in Figure 10. First, a common ladder diagram inserting position is specified at step (S21) to determine where to insert the common ladder diagram in the PC ladder program being written. Then, at step (S22), the serial number of the common ladder diagram, to be retrieved from the auxiliary storage device (23) is specified. At step (S23), the specified common ladder diagram is read from the auxiliary storage device (23) via the auxiliary storage device read/write means (7a) and sent to the main storage device 22. At step (S24), the device comparison table corresponding to the PC, for which the ladder program is being written, is read from the auxiliary storage device (23) and sent to the main storage device (22) via the auxiliary storage device read/write means (7a). Figure 14 indicates how the data is stored in the device comparison table once written into the main storage device (22). In Figure 14, an area is secured for each fixed device to store the device number actually used by the PC. Step (S25) determines whether the fixed device numbers have been extracted from the common ladder diagram read in step (S24). Step (S27) uses the device comparison table, shown in Figure 12, and fetches the actual device numbers corresponding to the fixed devices. At step (S28), the fixed device numbers are replaced by the actual device numbers. The process is repeated and step (S25) continues searching for fixed device numbers in the common ladder diagram not yet replaced by the actual devices, repeating the processing at steps (S26) to (S28), until replacement of all fixed device numbers is complete. Numeral (52) in Figure 13 indicates a common ladder diagram, indicated by (51), in which the fixed device numbers have been converted to actual device numbers in accordance with the device comparison table indicated by (53). After the replacement of all fixed device numbers is complete, step (S29) converts the program into a format usable by the ladder program writing means (3a). Then at step (S29), the converted common ladder diagram is inserted into the ladder program at the inserting position specified at step (S21). The present invention, as described above, achieves a programmable controller programming process which will allow a common ladder diagram to be written without relying on PC I/O assignment since the common ladder diagram may be written by specifying devices other than those used by the PC. Therefore, device numbers need not be manually corrected according to the PC I/O assignment when the common ladder diagram is used to write a PC ladder diagram, and the device comparison table for the PC corresponding to the program must only be created once. By writing a multiple of those common ladder diagrams, PC programming can be achieved efficiently.

Claims: A method of creating a ladder program for a programmable controller by incorporating into the ladder program a common ladder diagram (51) previously created and stored in a storage means (23), the common ladder diagram (51) utilizing first type device numbers (FD) to refer to devices to be controlled or monitored, said method comprising the steps of: a) reading (S23) the common ladder diagram (51) from the storage means (23); and d) incorporating (S28) the common ladder diagram (51) into the ladder program (52); and characterized by the further intermediate steps of b) reading (S24) after step a) a device comparison table from the storage means (23), the device comparison table (53) relating the first type device numbers (FD) used by the common ladder diagram (51) to second type device numbers used by the ladder program (52) to be created; and c) replacing (S27) the first type device numbers (FD) in the common ladder diagram (51) with corresponding second type device numbers obtained from the device comparison table (53) prior to incorporation of the ladder diagram (51) into the ladder program (52) in step d). A method according to claim 1, wherein the incorporation (S28) of the common ladder diagram is accomplished by converting (S29) the common ladder diagram (51) into a format compatible with the ladder program (52) being written and by inserting (S30) the converted common ladder diagram (51) into the ladder program. A method according to claim 1 or 2, further comprising the steps of: specifying (S21) prior to step a) an insertion position in the ladder program at which the common ladder diagram (51) is to be inserted; and incorporating (S30) in step d) the common ladder diagram (51) into the ladder program at the specified insertion position. An apparatus for creating a ladder program for a programmable controller by incorporating into the ladder program (52) a common ladder diagram (51) previously created and stored in a storage means (23), the common ladder diagram (51) utilizing first type device numbers (FD) to refer to devices to be controlled or monitored, said apparatus comprising means (7a) for reading the common ladder diagram (51) from the storage means (23) and for incorporating the common ladder diagram into the ladder program (52) to be created; characterized by means (5a, 7a) for reading a device comparison table (53) from the storage means (23), said table relating the first type device numbers (FD) used in the common ladder diagram (51) to second type device numbers used by the ladder program (53) to be created; editing means (6a) for replacing the first type device numbers (FD) in the common ladder diagram (51) with the corresponding second type device numbers obtained from the device comparison table (53), whereafter the edited common ladder diagram (51) is incorporated into the ladder program (52) to be created. An apparatus according to claim 4, wherein the editing means (6a) converts the common ladder diagrams (51) into a format compatible with the ladder program being written, whereafter the converted common ladder diagram (51) is inserted into the ladder program. An apparatus according to claim 4 or 5, further comprising: means (2a) for specifying an insertion position in the ladder program (52) at which the common ladder diagram (51) is to be inserted, and means (7a) for incorporating the common ladder diagram (51) into the ladder program (52) at the specified insertion position.

Inventors: UTAN DAIJI, UTAN, DAIJI, UTAN, DAIJI, C/O MITSUBISHI DENKI K.K.
Applicants: MITSUBISHI ELECTRIC CORP, MITSUBISHI DENKI KABUSHIKI KAISHA
Application year: 1991
Main classification: G05B19
IPC codes: G05B19