Controller programming apparatus and process using ladder diagram technique

Abstract: A programming technique for a programmable controller allows the operator to input a ladder symbol (101) followed by device names (X0,X1) separated by logical operators (*,+) in lieu of entering a redundant ladder symbol (101) for each device name (X0,X1). The logical operator (*,+) is identified during the conversion into a ladder diagram display (70A',70B',70C') so that the program instruction will be properly interpreted and displayed. Commonly used ladder diagram segments may be stored in advance and subsequently be inserted into the programmable controller program being written after conversion of the device names (X0,X1) to suit the configuration for which the ladder program is being written.

Description: The present invention relates to an apparatus for and a process of programming a programmable controller (hereinafter referred to as a "PC"). In particular, the invention concerns a method of writing a ladder diagram for display on a CRT screen. The publication "SORCON - A Software Relay Control System" published in Conference Proceedings IEEE Southeastcon, Raleigh, North Carolina, US, Andrew Lee Marshall, April 3, 1995, pages 29 to 33, discloses the application of ladder programming for the design of relay circuits. Logic equations are written corresponding to the relay circuit with its various electrical components. The system creates a file with the desired relay logic in ladder form. This is accomplished by the use of language operators and ladder logic symbols. The established ladder programs for the relay circuit are converted into a runtime code for execution of the program. The German Patent publication DE-A 32 22 305 discloses a device for writing a ladder program comprising fields for the input of logic symbols and their coordinates or positions in a control program. Processing means are provided for arranging the symbols in the program according to the input symbol information and the coordinate information. A memory stores the resulting symbol sequence from the processor and a display unit displays the contents of the memory. The symbols and coordinates are input into the device by means of input keys. Figure 1 is a block diagram showing the conventional hardware configuration of another PC programming unit. In Figure 1, a microprocessor 21 is connected by a bus 20 to a main storage device 22 comprising RAM, ROM, etc., 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 one symbol, and, also, many keys must be pressed if a complicated ladder diagram is to be written. Also, the conventional programming process described above has a disadvantage in that device numbers in an already registered common ladder diagram must be corrected in accordance with PC devices in the program now being written if that common ladder diagram is to be reutilized. It is, accordingly, an object of the present invention to overcome the disadvantages in the prior art by providing a PC programming apparatus which uses a ladder diagram technique and will allow multiple devices to be entered as against one ladder symbol, as connected by a logical operator, and to be automatically converted into instruction codes in accordance with the operator. It is a further object of the present invention to provide a PC programming process 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 of ladder programming and a programming apparatus are provided as defined in claims 1 and 6, respectively. In the programming process, 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 and in an embodiment of the present invention. Figure 5A is a diagram showing the configuration of a screen image table used in the conventional unit and in the embodiment of the present invention 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 according to an embodiment of the present invention. Figure 7 is a transition diagram of pressed keys and screens for an AND function according to an embodiment of the present invention. Figure 8 is an illustration of a transition diagram of pressed keys and screens for an OR function according to an embodiment of the present invention. Figure 9 is a function block diagram of a programmable controller programming unit according to an embodiment of the invention. Figure 10 is a flowchart illustrating the processing of inserting a common ladder diagram into a ladder program. 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. An embodiment of the present invention will now be described with reference to the drawings. The hardware configuration is identical to that of the conventional system shown in Figure 1. 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. The operation of the embodiment will be described with respect to the basic system of Figure 1, the flow of data and processing in Figure 6, and an example of the operation of the embodiment illustrated in Figure 7. 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 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 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). As described above, the programmable controller programming process allows a ladder symbol and devices to be combined by an operator code entered from the keyboard. This also permits each operator code to be automatically converted into a instruction so that a ladder symbol need not be entered every time a device is specified. With the above capabilities, excellent operability is ensured in data entry. A further advantage is that the programming process 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 ladder programming a programmable controller comprising a microprocessor (21), a storage means (12), an input means (24) and a display means (25), by using a ladder programming technique comprising the steps of: a) entering at the input means (24) ladder symbol data and device identifier data for specifying a plurality of devices (X0, X1) ; b) storing temporarily the entered data in the storage means (12); c) extracting the stored data; d) converting the ladder symbol data and the device identifier data into codes and assembling the codes as a program instruction; and e) displaying the program instruction in ladder form on the display means (25); characterized by f) in steps a) and b), additionally entering and storing logical operator data defining a combination of the specified devices (X0, X1); g) in step c), extracting the logical operator data and the data of the specified devices (X0, X1) to be logically combined; h) in step d), converting the logical operator data into an operator code and assembling program instructions in accordance with the ladder symbol codes and the operator code combining the specified devices (X0, X1). A method as claimed in claim 1, characterized in that it comprises the further steps of; displaying the entered data temporarily on the display means (25) ; and identifying the termination of the data entering step so that the data is converted into a program instruction which is displayed in ladder form on the display means (25) in response to the identifying step. A method as claimed in claim 1 or claim 2, characterized in that the operator code is operative to separate the connected devices in the extracting step and to connect the devices with a respective ladder symbol. A method as claimed in any one of claims 1 to 3, characterized in that it comprises the further step of displaying the entered data on the display means (25) in response to address information provided by a cursor (73). A method as claimed in any one of claims 1 to 4, characterized in that it further comprises the steps of: writing a common ladder diagram (51) using first type device numbers, which are in a format incompatible with second type device numbers used in a PC device configuration; creating a comparison table (Fig. 14) between the first type device numbers and the second type device numbers by a device comparison tabulating means (5a), the second type device numbers being in a format compatible with those in use in a particular PC device configuration; replacing (S28) the first type device numbers in the common ladder diagram (51) with corresponding second type device numbers from the comparison table using a common ladder diagram editing means (6a); and incorporating (S30) the common ladder diagram (51) into the ladder program being written, after the first type device numbers in the common ladder diagram (51) have been replaced by the corresponding second type device numbers. A programmable controller programming apparatus comprising a microprocessor (21), a display means (25) having a display area (70), temporary storage means (12), means (24) for inputting into the temporary storage ladder symbol data and device identifier data for specifying a plurality of devices (X0, X1), extraction means (11, 13, 14) and conversion means (15, 16) for extracting and encoding the ladder symbol and device identifier data into codes and a screen image table creation means (17) for storing at individually addressed locations the ladder symbol and device identifier codes for use in generating a display on the display means (25), characterized in that the inputting means (24) are adapted to input logical operator data into the temporary storage means (12), the operator data defining a combination of the specified devices (X0, X1), the extracting means (11, 13, 14) comprise means (14) for separating and storing the device identifier data for each of the specified devices (X0, X1) and further comprises an operator extraction means (11) for extracting the operator data; the conversion means (15) are adapted for generating codes in accordance with the extracted logical operator data; and the screen image table creation means (17) is adapted to assemble and store the coded information as program instructions in accordance with the ladder symbol codes and the operator codes for combining the specified devices (X0, X1). An apparatus as claimed in claim 6, characterized in that it further comprises a block position control means (18) which is responsive to codes from the converter means (15) and the screen image table creation means (17) to identify an address at which the information is to be stored. An apparatus as claimed in claim 7, characterized in that the address is incremented by a predetermined amount in response to the operator code.

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