WO2017104934A1 - Plc 제어 프로그램의 공용형식 변환장치 및 방법 - Google Patents

Plc 제어 프로그램의 공용형식 변환장치 및 방법 Download PDF

Info

Publication number
WO2017104934A1
WO2017104934A1 PCT/KR2016/009490 KR2016009490W WO2017104934A1 WO 2017104934 A1 WO2017104934 A1 WO 2017104934A1 KR 2016009490 W KR2016009490 W KR 2016009490W WO 2017104934 A1 WO2017104934 A1 WO 2017104934A1
Authority
WO
WIPO (PCT)
Prior art keywords
common
command
control program
plc control
same function
Prior art date
Application number
PCT/KR2016/009490
Other languages
English (en)
French (fr)
Inventor
왕지남
안승훈
박준표
진석명
박호철
Original Assignee
주식회사 유디엠텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 유디엠텍 filed Critical 주식회사 유디엠텍
Priority to US16/063,383 priority Critical patent/US20180373218A1/en
Publication of WO2017104934A1 publication Critical patent/WO2017104934A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program

Definitions

  • the present invention relates to an apparatus and method for converting a common type of a PLC (Programmable Logic Controller) control program, and more particularly, to convert a PLC control program having a different text format for each PLC manufacturer into a common type PLC control program. It relates to a common type conversion device and a method of a PLC control program.
  • PLC Programmable Logic Controller
  • PLC Programmable Logic Controller
  • LD Layer Diagram
  • BFD Function Block Diagram
  • ST Structured Text
  • IL Instruction List
  • SFC Sequential Function Chart
  • CFC Continuous Function Chart
  • the structure of the PLC control program can be largely divided into tag information containing information about PLC contacts and logic information containing information about a driven PLC program.
  • the logic information is the most basic element in operating the automation process, and includes all the information about the sequence and condition for the facility / process / line control. In certain situations, it can be used as key information for process operation analysis.
  • the control logic of the PLC control program is programmed in LD in most industrial fields due to the intuitiveness and simplicity of the language among various PLC programming languages.
  • LD arranges contacts for output by AND and OR structure by step and makes sequence and condition for process control using various arithmetic and function.
  • PLC control program written in LD is converted into text based PLC control program for processing and analysis.
  • the form of the text-based PLC control program differs by PLC manufacturer.
  • the control logic of the PLC control program is expressed in text using IL.
  • STL expresses the control logic of the PLC control program in text.
  • the control logic of the PLC control program is expressed in text according to its platform.
  • the user can intuitively or easily understand the control logic of PLC control program written in LD using PLC programming software provided by each PLC manufacturer.
  • the control logic of the text-based PLC control program extracted for process operation analysis has a different structure for each PLC manufacturer, not LD, so the user can analyze each PLC manufacturer's control logic for each PLC manufacturer. It is important to understand how to express control logic of PLC control program by manufacturer.
  • the apparatus for converting a common format of a PLC control program uses a common command generation algorithm to generate a common command for commands used in text-based PLC control programs having different formats.
  • any text-based PLC control program requested to be converted to a common format can be converted to a PLC control program of a common format, so that the arbitrary text-based PLC control program is converted to the common format using the common command library.
  • the common instruction generation algorithm includes: a first step of classifying instructions used in text-based PLC control programs having different formats into identical display instruction groups having the same meaning on display; A second step of confirming whether all commands belonging to the same display command group are the same function; And if the commands belonging to the same display command group are all of the same function, generate a dictionary word indicating the same commands belonging to the same display command group and having the same function as a common command for the commands having the same function. If the commands belonging to the same display command group do not all have the same function, the dictionary words for displaying the same commands belonging to the same display command group but not all have the same function do not have the same function. A third step of generating a common command for the commands and inserting the manufacturer name of the PLC controlled by the PLC control program in which the command having the same function is not used into the common command for the commands having the same function; It includes.
  • a parameter qualifier included in the command having the same function may be inserted into the common command for the commands having the same function.
  • an operation qualifier included in the command having the same function may be inserted into the common command for the command having the same function.
  • a parameter qualifier included in the command that does not have the same function may be assigned to the common command for the commands that do not have the same function. Can be inserted.
  • the third step may include inserting an operation modifier included in an instruction not having the same function into the common instruction for the commands not having the same function when generating a common command for the instructions not having the same function. have.
  • the PLC control program of the common format may be expressed in a common format for at least one RUNG constituting the control logic of the text-based PLC control program.
  • the common type RUNG can be started by combining a letter "N" and a step index of a contact located at the beginning of the text-based RUNG among the contacts in the text-based RUNG.
  • At least one contact point in the text-based RUNG is represented by a common object including a common command and a tag, respectively, and at least one generated by blocking the at least one common object.
  • the coupling relationship between the common blocks of may be represented by at least one of the symbols "[", "]" and ",”.
  • the common format converting unit for each RUNG constituting the control logic of the arbitrary text-based PLC control program, as any text-based PLC control program requested to be converted into a common format can be converted into a PLC control program of the common format.
  • An IL object generator configured to generate at least one contact as an IL object including a command and a tag, respectively, according to a logic order;
  • An IL block generator for generating at least one IL block by blocking the at least one IL object using a block command;
  • Using the common instruction library a common object is generated by converting the instruction into a common instruction for each of the at least one IL object in the at least one IL block, and converts the at least one IL block into at least one shared block.
  • a join relation expression unit for expressing a join relation between the at least one common block by at least one of symbols "[", "]” and "," using a join instruction. Can be converted into the common PLC control program.
  • the common format conversion method of the PLC control program by using the common instruction generation algorithm, by generating a common command for the commands used in text-based PLC control programs having different formats Building a common instruction library;
  • the arbitrary text-based PLC control program is converted into the common format.
  • the converting of the arbitrary text-based PLC control program into the common format PLC control program may include converting any text-based PLC control program requested to be converted into a common format into a common PLC control program. Generating at least one contact as an IL object including a command and a tag, respectively, according to a logic order for each RUNG constituting the control logic of the arbitrary text-based PLC control program; Generating at least one IL block by blocking the at least one IL object using a block instruction; Using the common instruction library, a common object is generated by converting the instruction into a common instruction for each of the at least one IL object in the at least one IL block, and converts the at least one IL block into at least one shared block. Doing; And expressing a coupling relationship between the at least one shared block by at least one of symbols "[", "]” and ",” by using a combining instruction. Can be converted to a common PLC control program.
  • the user can convert the PLC control program into a common format without the user knowing or acquiring all the control logic expression methods of the PLC control program for each PLC manufacturer This makes it easy to analyze the control logic of the PLC control program.
  • FIG. 1 is a block diagram showing a common format conversion apparatus of a PLC control program according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating an example of an XML file format for a common command.
  • FIG. 3 is a block diagram illustrating a common format conversion unit.
  • FIG. 4 is a diagram showing a data structure having four columns of Mitsubishi Developer (in order of StepNumber, Note, Command, and Operand).
  • 5 is a view showing a common format conversion impossible case.
  • FIG. 6 is a diagram illustrating a text-based Mitsubishi PLC control program for an LD structure Mitsubishi PLC program.
  • FIG. 7 is a diagram illustrating IL objects.
  • FIG. 8 is a diagram illustrating IL blocks.
  • FIG. 9 is a diagram illustrating a process of expressing a coupling relationship between common blocks in a common format by applying a combining instruction OR to the common blocks shown in FIG. 8.
  • FIG. 10 is a diagram illustrating a process of expressing a coupling relationship between common blocks in a common format by applying a joint command OR to shared blocks and then applying a joint command ANB to subsequent shared blocks.
  • FIG. 11 is a diagram illustrating a process of expressing a coupling relationship between common blocks by applying a joint command ANB to shared blocks after applying a joint command ANB to common blocks in FIG. 10.
  • FIG. 12 is a diagram illustrating types of shared blocks represented by applying OR, ANB, and ORB to the shared blocks shown in FIG. 8.
  • FIG. 13 is a diagram illustrating a result of applying a combined command MPS used in an output unit to the common blocks illustrated in FIG. 12.
  • FIG. 14 is a diagram illustrating a result of applying a combined command MRD used in an output unit to the common blocks illustrated in FIG. 12.
  • FIG. 15 is a diagram illustrating a result of applying a combined command MPP used in an output unit to the common blocks illustrated in FIG. 12.
  • FIG. 16 is a diagram illustrating the shape of common blocks shown by applying MPS, MRD, and MPP to the common blocks shown in FIG. 12.
  • FIG. 17 illustrates a result of merging common blocks shown by applying a combined command used in an input unit and a combined command used in an output unit with respect to the shared blocks illustrated in FIG. 8.
  • FIG. 18 is a flowchart illustrating a common format conversion method of a PLC control program according to an embodiment of the present invention.
  • step S50 is a detailed flowchart of step S50 shown in FIG. 18.
  • first, second, etc. are used herein to describe various members, regions, and / or portions, it is obvious that these members, components, regions, layers, and / or portions should not be limited by these terms. Do. These terms do not imply any particular order, up or down, or superiority, and are only used to distinguish one member, region or region from another member, region or region. Accordingly, the first member, region, or region described below may refer to the second member, region, or region without departing from the teachings of the present invention.
  • FIG. 1 is a block diagram showing a common format conversion apparatus of a PLC control program according to an embodiment of the present invention.
  • a common format converting apparatus 10 of a PLC control program includes a construction unit 11, a storage unit 12, and a common format converting unit 13.
  • the construction unit 11 generates a common instruction library for instructions used in text-based PLC control programs having different formats according to the common instruction generation algorithm, constructs a common instruction library, and stores it in the storage unit 12. do.
  • the command information and the corresponding common command information used in the PLC control program for each PLC manufacturer have already been stored or entered in the construction unit 11 before the construction of the common command library is started. It is preferable that this is completed.
  • the construction unit 11 When the instructions used in the PLC control program for each PLC manufacturer are ready, the construction unit 11 builds a common instruction library according to the common instruction generation algorithm.
  • the common command generation algorithm is an algorithm that sequentially performs the first step, the second step and the third step to generate a common command for the commands used in text-based PLC control programs having different formats to be.
  • the first step is to classify the commands used for text-based PLC control programs having different formats into the same display command groups having the same meaning on the display.
  • the second step is to check whether all the commands belonging to the same display command group have the same function.
  • the third step is to generate a common command in a different manner depending on whether all of the commands belonging to the same display command group are the same function or not.
  • a dictionary word indicating the same commands belonging to the same display command group and having the same function is a common command for the commands having the same function. Is generated.
  • a parameter qualifier included in the command having the same function may be inserted into the common command for the command having the same function.
  • the position at which the parameter qualifier is inserted is not limited thereto.
  • AB's command 'DEQU' for 'equal' is a command with the parameter qualifier D (Double) appended to the command 'EQU'.
  • 'D' limits the parameter size of the command 'EQU'.
  • the 'EQU' command processes 1 Word (16bit), and the 'DEQU' command processes 2 Word (32bit).
  • parameter qualifiers that define command parameters may be inserted as prefixes of common commands.
  • an operation modifier included in the command having the same function may be inserted into the common command for the commands having the same function. If any one of the operation qualifiers limiting the operation of the command, that is, P (Negative Pulse) or N (Negative Pulse) is included in the corresponding command, the operation qualifier may be inserted as a suffix in the common command of the command. However, the position at which the operation modifier is inserted is not limited thereto.
  • Mitsubishi's 'ANDP' command is 'P', an operation qualifier that converts 'AND', which has a function to turn on when the address value is On, to a positive pulse form. (Positive pulse) '. Therefore, 'XICP', a common command for 'ANDP', may be generated by suffixing an operation modifier 'P' to 'XIC (eXamine If Closed)', a common command for 'AND'.
  • the dictionary words for displaying the same commands belonging to the same display command group but not all have the same function do not have the same function. It is possible to generate a common command for the commands, and insert the manufacturer name of the PLC controlled by the PLC control program in which the command having the same function is not used in the common command for the commands having the same function.
  • the command 'LIMIT' may be mentioned.
  • the command 'LIMIT' is used the same in the PLC control program of Mitsubishi, LS Industrial Systems and AB, but it does not have the same function.
  • 'LIMIT' command is not used in Siemens PLC control program.
  • the common command for the command 'LIMIT' may be generated as the word 'LIMIT' in the dictionary. Since the command 'LIMIT' does not have the same function for each PLC manufacturer, the manufacturer name of each PLC can be inserted in the common command 'LIMIT'. For example, Mitsubishi's 'm', 'S' for Siemens, 'ab' for AB, and 'ls' for LS prenatal can be inserted as a prefix of the common command 'LIMIT'. In other words, it can be 'mLIMIT' for Mitsubishi, 'sLIMIT' for Siemens, 'abLIMIT' for AB, and 'lsLIMIT' for LS.
  • a parameter qualifier included in the command that does not have the same function may be inserted into the common command for the commands that do not have the same function.
  • AB's command 'DLIMIT' is a command with the parameter qualifier D (Double) appended to the command 'LIMIT'.
  • 'D' limits the parameter size of the command 'LIMIT'.
  • the 'LIMIT' command processes 1 Word (16bit), and the 'DLIMIT' command processes 2 Word (32bit).
  • parameter qualifiers that define command parameters may be inserted into common commands, which may be placed after a prefix indicating the PLC manufacturer, for example, 'ab' indicating the AB company. After all, the common command for AB 'DLIMIT' may be 'abDLIMIT'.
  • an operation modifier included in the command that does not have the same function may be inserted into the common command for the commands that do not have the same function.
  • Mitsubishi's 'LIMITP' command includes 'P (Postive Pulse)', an operation modifier that converts the positive pulse form into the command 'LIMIT'.
  • an action modifier that restricts the operation of the command may be inserted as a suffix to the public command.
  • the public command for Mitsubishi's command "LIMITP" could be "mLIMITP.”
  • the common command generated by sequentially performing steps 1 to 3 may be converted into an XML (eXtensible Markup Language) file format to build a common command library in the storage unit 12.
  • XML eXtensible Markup Language
  • the XML file for the common command includes instructions corresponding to each of the Instructio Name 'XIC', 'XICP', and 'XICF' for each PLC manufacturer.
  • the command 'XIC' corresponds to AB
  • the command 'XIC' corresponds to AB
  • Mitsubishi's' LD ',' AND 'and' OR ' respectively
  • the common format converting unit 13 converts any text-based PLC control program that is requested to be converted into a common format into a PLC control program of the common format, by using the common command library. Convert the control program to the PLC control program of the above-mentioned common type.
  • the common format conversion unit 13 includes an IL object generation unit 14, an IL block generation unit 15, a common block conversion unit 16, and a joint relationship expression unit 17. To convert the arbitrary text-based PLC control program into the common type PLC control program.
  • the IL object generation unit 14 confirms whether any text-based PLC control program requested to be converted to the common format can be converted to the PLC control program of the common format.
  • whether or not the common format of any text-based PLC control program requested to be converted to the common format may be determined using at least one of a file extension and a data structure of the arbitrary text-based PLC control program.
  • whether or not the arbitrary text-based PLC control program can be converted into a common format is primarily checked for a file extension of the arbitrary text-based PLC control program.
  • the checked file extension corresponds to the set file extension, it is secondly checked whether the data structure of the arbitrary text-based PLC control program corresponds to the set data structure.
  • the set data structure is different for each PLC control program for each PLC manufacturer and may be the number of columns.
  • LSIS has a data structure with two columns
  • Mitsubishi Developer has a data structure with four columns (in order of StepNumber, Note, Command, Operand), as shown in FIG.
  • Mitsubishi Works2 has a data structure with 11 columns
  • Mitsubishi Works3 can have a data structure with 20 columns or more.
  • any text-based PLC control program cannot be converted to a common PLC control program.
  • FIG. 5 An example of this is shown in FIG. 5.
  • the common format conversion impossible case is logic called ST (Structured Text) of AB.
  • ST Structured Text
  • This logic cannot be converted to a common format because it is difficult to find regularity because it is freely input from the user in the same way as .NET-based program code. For example, it depends on the user, how many times the For statement is used, whether it is nested or separately.
  • the user can freely define an internal variable called temp, and since the address of the internal variable does not allocate a specific area of the PLC memory, it is impossible to convert to the common type.
  • FIG. 6 An example of any text based PLC control program identified as convertible to this common format is shown in FIG. 6.
  • FIG. 6 a text-based Mitsubishi PLC control program for an LD structure Mitsubishi PLC program is shown.
  • the text-based Mitsubishi PLC control program consists of three columns.
  • the IL object generation unit 14 configures the control logic of the arbitrary text-based PLC control program as any text-based PLC control program requested to be converted to the common format can be converted to the PLC control program of the common format.
  • at least one contact is generated as an IL object including a command and a tag, respectively, according to the logic order. That is, the IL object used throughout the present invention is used in the same sense as the contact point.
  • the tags are X1, X2, and X3. , D100, D101, M0, D200, D201, D202, M1, Y0, K30, D210 and the like.
  • the tag has a data type 'D' and an address '200' as in D200, for example, and actually represents the memory address value of the PLC hardware.
  • FIG. 7 is a diagram illustrating IL objects generated according to an execution result of the IP object generation unit 14 for the text-based Mitsubishi PLC control program shown in FIG. 6.
  • the IL objects are arranged according to the control logic order of the text-based Mitsubishi PLC control program shown in FIG. 6. That is, the order of the IL objects is the same as the control logic order of the text-based Mitsubishi PLC control program.
  • the IL block generation unit 15 generates at least one IL block by blocking at least one IL object generated by the IL object generation unit 14 using a block command.
  • the block instruction includes LD, ANB, OR, ORB, MPP, MRD, and MPS.
  • LD is an abbreviation of Load and indicates that the contact point on the control logic is loaded.
  • the LD may continue to produce blocks of control logic of the PLC program.
  • ANB stands for AND Block, indicating that two blocks created before the AND instruction are in AND relationship with each other.
  • OR indicates that the symbol preceding the OR command and the symbol of the OR command are ORed together.
  • ORB stands for OR Block, indicating that two blocks created before the ORB instruction are OR'ed together.
  • MPS Multi Point Start. When multiple output contacts appear, the first output contact is written to the front of the first output contact and the contacts associated with that output contact.
  • MRD Multi Read Down and is used when three or more output contacts appear.
  • MPP Multi Point Period. When multiple output contacts appear, the MPP is written at the front of the last output contact and the contacts associated with that output contact.
  • OR, ORB, ANB, MPS, MRD, and MPP among the block commands are combined commands used in the connection relationship expression unit 17.
  • the combined instruction except the OR instruction includes only the instruction when expressing the IL object, and expresses only the association relationship between each block. Therefore, since the block combining instruction indicating the relationship between the blocks, the instruction of the IL object including the block combining instruction is not converted into the common instruction when the transform unit 16 is executed to the common block.
  • the IL block generator 15 checks whether the IL objects include a block instruction while moving the IL objects arranged in the control logic order, and generates a new IL block if the IL instruction includes the block instructions. do. On the other hand, if the block instruction is not included, the IL object is sequentially included in the previously generated IL block until a new block instruction appears.
  • IL blocks generated through the IL block generation process are illustrated in FIG. 8.
  • the generated IL blocks are all nine.
  • the IL block 1 is generated by the block instruction 'LD', and includes three IL objects, an IL object of an instruction LD, an IL object of an instruction ANI, and an IL object of an instruction AND.
  • LD means Load corresponding tag X1 on the control logic.
  • the address X1 of the memory of the PLC hardware turns ON, the corresponding contact turns on.
  • the IL block 2 is generated by the block instruction 'LDI' and includes one IL object, that is, the IL object which is the instruction LDI.
  • LDI means Load Inverse, indicating that the tag X1 is loaded on the control logic. As it contains the meaning of Inverse, the corresponding contact is ON when tag X1 is OFF.
  • 'LD ' indicates that the contact point meaning 'equal' is loaded on the control logic. If the D100 and D101 addresses included in the contact are the same, the corresponding contact turns ON.
  • the IL block 5 is generated by the block instruction 'ANB' and includes one IL object, that is, an IL object that is the instruction 'ANB'.
  • IL block 6 is generated by the block instruction 'ORB' and includes one IL object, that is, an IL object that is the instruction 'ORB'.
  • the IL block 7 is generated by the block instruction 'MPS' and includes three IL objects, an IL object having the instruction 'MPS', an IL object having the instruction 'AND', and an IL object having the instruction '+'.
  • the command '+' has a meaning of add and adds the value of the previous two addresses among the values of the three addresses included in the contact and stores it at the last address.
  • the IL block 8 is generated by the block instruction 'MRD' and includes three IL objects, an IL object having the instruction 'MRD', an IL object having the instruction 'AND', and an object having the instruction OUT.
  • the IL block 9 is generated by the block instruction 'MPP' and includes two IL objects, an IL object having the instruction 'MPP' and an IL object having the instruction 'LIMIT'.
  • the common block converting unit 16 generates a common object by converting the instruction into a common instruction for each of the at least one IL object in the at least one IL block by using the common instruction library, and thus, the at least one IL block. Converts to at least one shared block.
  • the common block converting unit 16 converts the instructions in the IL block into common instructions using the common instruction library, and converts the nine IL blocks shown in FIG. 8 into common blocks.
  • the common block converting unit 16 converts an IL object having an instruction 'LD' to a common object having a common instruction 'XIC' using the common instruction library, and has an instruction of 'ANI'.
  • the IL block 1 is converted into a common block by converting the IL object into a public object of the common instruction 'XIO' and converting the IL object of the instruction 'AND' into a public object of the common instruction 'XIC'. Therefore, the common format of the common block 1 can be expressed as 'XIC (X1) XIO (X2) XIC (X3)'.
  • the common block converting unit 16 converts the IL object having the instruction 'LDI' to a common object having the common instruction 'XIO' using the common instruction library, thereby converting the IL block # 2 twice. Convert to a common block. Therefore, the common type of block 2 can be expressed as 'XIO (X1)'.
  • the IL object including the coupling instruction may be converted into a common block by converting the IL object into a common object without converting it into a common instruction for the coupling instruction.
  • OR, ORB, ANB, MPS, MRD, and MPP are combined instructions used in the association relationship expression unit 17.
  • the combined instruction except the OR instruction includes only the instruction when expressing the IL object, and expresses only the association relationship between each block. Therefore, since the block combining instruction indicating the relationship between the blocks, the instruction of the IL object including the block combining instruction is not converted into the common instruction when the transform unit 16 is executed to the common block. Therefore, an IL object instruction that is not converted to a public instruction is not represented because the instruction part is blank when converted to the public object.
  • the common block converting unit 16 converts the IL block # 5 to the common block # 5 without converting the IL object that is the block combining instruction 'ANB' to the common command using the common command library. do.
  • the common form of the 5th common block is not represented.
  • the common block converting unit 16 converts the IL block 6 to the common block 6 without converting the IL object that is the block combining instruction 'ORB' into the common command using the common command library. do.
  • the common type of common block 6 is not represented.
  • the common block converting unit 16 does not convert the IL object that is the block combining instruction 'MPS' into the common instruction using the common instruction library, and converts the IL object that is the instruction 'AND' using the common instruction library.
  • the IL block 7 is converted to the public block 7 by converting it to a public object of 'XIC' and converting the IL object of the command '+' to a public object of the common command 'ADD'. Therefore, the common format of the seventh common block may be expressed as 'XIC (M0) ADD (D200, D201, D202)'.
  • the common block converting unit 16 converts the IL object having the command 'MRD' into a common object having the common command 'MRD' using the common command library, and the IL object having the command 'AND'. Is converted into a public object of public instruction 'XIC', and IL object of instruction 'OUT' is converted into a public object of public instruction 'OUT', thereby converting IL block 8 to 8 public block. Therefore, the common type of shared block 8 can be expressed as 'XIC (M1) OUT (Y0)'.
  • common command library 'XIC' for command 'AND' and common command 'OUT' for command 'OUT' should correspond to common command library.
  • the common block converting unit 16 converts an IL object having an instruction 'MPP' to a common object having a common instruction 'MPP' using the common instruction library, and an IL object having an instruction 'LIMIT'.
  • the common format of the common block 9 can be expressed as 'mLIMIT (D200, D202, K30, D210)'.
  • the common control PLC control program may be expressed in a common format for at least one RUNG constituting the control logic of the text-based PLC control program.
  • the common type RUNG can be started by combining a letter "N" and a step index of a contact located at the beginning of the text-based RUNG among the contacts in the text-based RUNG.
  • At least one contact point in the text-based RUNG is represented by a common object including a common command and a tag, respectively, and at least one generated by blocking the at least one common object.
  • the coupling relationship between the common blocks of may be represented by at least one of the symbols "[", "]” and ",”. At this time, the symbols "[”, "]” represent a coupling point, and the symbol ",” represents a branch point.
  • association relationship between the common blocks may be performed by the association relationship representation unit 17 shown in FIG. 2.
  • the coupling relationship expression unit 17 expresses the coupling relationship between the at least one shared block by at least one of the symbols "[", "]” and ",” using a coupling command.
  • the combined instruction may include OR, ORB, ANB, MPP, MPS, and MRD.
  • the combined instructions used for the input (conditional) are OR, ANB and ORB, and the combined instructions used for the output are MPS, MRD and MPP.
  • the coupling relationship expression unit 17 may express the coupling relationship between the common blocks expressed in the common format with at least one of the symbols "[", “]” and “,”. To this end, the coupling relationship expression unit 17 expresses the coupling relationship between the common blocks expressed in the common form according to the coupling instruction used in the input unit (conditional) with at least one of the symbols "[", “]” and ",” After that, the coupling relationship between the common blocks represented by the coupling command used in the input unit may be expressed by at least one of the symbols "[", "]” and ",” according to the combining command used in the output unit.
  • the coupling command used in the input unit is applied to the common blocks expressed in the common format in the order of OR-> ANB-> ORB, and the symbol "[" , "]" And ",” can be expressed by at least one.
  • the application of the combined command used in the input unit to the common blocks expressed in the common format in the order of OR-> ANB-> ORB is just one embodiment, but is not limited thereto.
  • the common blocks represented by the combined command used in the input unit may be applied to the common blocks represented by the combined command used in the input unit in the order of MPS-> MRD-> MPP.
  • the coupling relationship between the two may be expressed by at least one of the symbols "[", "]" and ",".
  • the application of the combined command used in the output unit to the common blocks represented by the combined command used in the input unit in the order of MPS-> MRD-> MPP is just one embodiment and is not limited thereto.
  • FIG. 9 is a diagram illustrating a process of expressing a coupling relationship between common blocks in a common format by applying a combining instruction OR to the common blocks shown in FIG. 8.
  • the coupling relationship expression unit 17 checks whether the common blocks including the coupling instruction OR are present in the common blocks illustrated in FIG. 8, and if there is a common block including the coupling instruction OR, the coupling instruction OR is included.
  • the coupling relationship between the public block and the two public blocks of the previous public block is expressed using the symbols "[", "]" and ",”.
  • FIG. 10 is a diagram illustrating a process of expressing a coupling relationship between common blocks in a common format by applying a joint command OR to shared blocks and then applying a joint command ANB to subsequent shared blocks.
  • the joint relationship expression unit 17 checks whether there is a common block including a joint instruction ANB in the subsequent shared blocks after applying the joint instruction OR to the common blocks in FIG. 9. If there is a shared common block, the two common blocks preceding the shared block including the join instruction ANB are merged in sequence (S5).
  • association relationship expression unit 17 merges the common format representations of the common block 2 and the common block 4 before the common block 5 including the association instruction ANB into the common format representation of the common block 5.
  • the merged common formats are 'XIO (X1)' (EQUAL (D100, D101), DEQUAL (D100, D100)].
  • association relationship expression unit 17 deletes the common object including the association instruction ANB from the fifth shared block in which the shared block 2 and the shared 4 block are merged (S6).
  • FIG. 11 is a diagram illustrating a process of expressing a coupling relationship between common blocks by applying a joint command ANB to shared blocks after applying a joint command ANB to common blocks in FIG. 10.
  • the joint relation expression unit 17 checks whether there is a common block including the joint instruction ORB in the subsequent shared blocks, and then checks the joint instruction ORB. If there is a shared block, the association relationship for the shared blocks is expressed by using the non-empty public block in front of the shared block including the combined instruction ORB and the shared block including the combined instruction ORB.
  • association relationship expression unit 17 inserts "[" at the beginning of the common type expression of the first public block of the first non-empty public blocks of the two non-empty public blocks in front of the common block ORB. (S7).
  • the association relation expression unit 17 inserts "," at the beginning of the common type representation of the common block 5, which is the first public block of the two non-empty public blocks before the common block 6 including the combined instruction ORB ( S8).
  • the association relationship expression unit 17 checks whether the common block including the association instruction OR and the common block including the association instruction ORB exist in the public block after the common block 6 including the association instruction ORB, and only when the association block is not present. Insert "]" into the common type representation of the common block 6 including the ORB (S9).
  • the joint relationship expression unit 17 merges the public block 1 and the 5 public block into the 6th public block with the lowest number among the public block 1, the public block 5, and the public block 6, and then merges the public block 6 In step S10, the common object including the combined instruction ORB is deleted.
  • the merged common type is
  • FIG. 12 is a diagram illustrating types of shared blocks represented by applying OR, ANB, and ORB to the shared blocks shown in FIG. 8.
  • the common blocks OR, ANB, and ORB used in the input unit are sequentially applied to the common blocks illustrated in FIG. 8, and the common blocks 1 through 5 are merged into the common block 6. It can be confirmed.
  • the common format that expresses the association between public blocks 1 to 6 is' [XIC (X1) XIO (X2) XIC (X3), XIO (X1) [EQUAL (D100, D101), DEQUAL (D100, D100 )]] '.
  • FIG. 13 is a diagram illustrating a result of applying a combined command MPS used in an output unit to the common blocks illustrated in FIG. 12.
  • the coupling relationship expression unit 17 checks whether there is a common block including the coupling command MPS used in the output unit with respect to the common blocks shown in FIG. 12, and if there is a common block including the coupling command MPS.
  • a "[" is inserted at the beginning of the common format representation of the common block (S11).
  • association relationship expression unit 17 inserts "[" in front of the common format representation of the common block 7 including the association instruction MPS.
  • FIG. 14 is a diagram illustrating a result of applying a combined command MRD used in an output unit to the common blocks illustrated in FIG. 12.
  • the coupling relationship expression unit 17 checks whether there is a common block including the coupling command MRD used in the output unit for the common blocks shown in FIG. 12, and if there is a shared block including the coupling command MRD, "," Is inserted at the beginning of the common format expression of the corresponding common block (S12).
  • association relation expression unit 17 inserts "," at the beginning of the common format representation of the common block 8 including the association instruction MRD.
  • FIG. 15 is a diagram illustrating a result of applying a combined command MPP used in an output unit to the common blocks illustrated in FIG. 12.
  • the coupling relationship expression unit 17 checks whether there is a common block including the coupling instruction MPP used in the output unit with respect to the common blocks shown in FIG. 12, and if there is a common block including the coupling instruction MPP. ",” Is inserted at the beginning of the common format representation of the common block and "]” is inserted at the end of the common format representation of the common block (S13).
  • association relation expression unit 17 inserts ",” and "" "at the front of the common format expression of the common block 9 including the association instruction MPPfmf.
  • common type of common block 9 is ', mLIMIT (D200, D202, K30, D210)]'.
  • FIG. 16 is a diagram illustrating the shape of common blocks shown by applying MPS, MRD, and MPP to the common blocks shown in FIG. 12.
  • a common type representation of common blocks 7 to 9 common blocks corresponding to the output unit is applied by applying the combined commands MPS, MRD, and MPP used in the output unit to the common blocks shown in FIG. 12. It can be seen that symbols are inserted to indicate a coupling relationship in the.
  • the common type of shared block 7 is '[XIC (M0) ADD (D200, D201, D202)', and the shared type of shared block 8 is ', XIC (M1) OUT (Y0)', and shared block 9 is Common format is ', mLIMIT (D200, D202, K30, D210)'.
  • FIG. 18 is a flowchart illustrating a common format conversion method of a PLC control program according to an embodiment of the present invention.
  • the common format conversion method of the PLC control program according to an embodiment of the present invention may be performed by the common format conversion apparatus 10 shown in FIG. 1, but is not limited thereto.
  • the construction unit 11 of the common format conversion apparatus 10 uses a common instruction generation algorithm to generate common instructions for instructions used in text-based PLC control programs having different formats. Create and build a common command library (S20).
  • the common format converting unit 13 of the common format converting apparatus 10 according to the request for converting an arbitrary text-based PLC control program to the common format (S30), the extension and data of the arbitrary text-based PLC control program. Using the structure, it is checked whether the arbitrary text-based PLC control program can be converted into the common control PLC control program (S40).
  • the arbitrary text-based PLC control program can be converted into the common format PLC control program, and the common format converting unit 13 controls the arbitrary text-based PLC using the common command library.
  • the program is converted into the PLC control program of the common format (S50).
  • the common format conversion unit 13 If the arbitrary text-based PLC control program cannot be converted to the common control PLC control program, the common format conversion unit 13 generates a common format conversion impossible message, thereby requesting the common format conversion requester (terminal of the requestor). It transmits to (S60).
  • the conversion method to the common format for any text-based PLC control program performed by the common format conversion unit 13 shown in FIG. 19 is included in the common format conversion unit 13 as shown in FIG.
  • the IL object generation unit 14, the IL block generation unit 15, the common block conversion unit 16, and the association relationship expression unit 17 may be provided.
  • the IL object generation unit 14 may convert any text-based PLC control program requested to be converted into a common format into a common PLC control program.
  • at least one contact point is generated as an IL object including a command and a tag, respectively, according to the logic order (S71).
  • the IL block generation unit 15 generates at least one IL block by blocking the at least one IL object by using a block command. This may correspond to steps S72 to S76 in FIG. 19.
  • the IL block generation unit 15 sequentially extracts the IL object from the IL object list (S72), and until the last IL object of the RUNG (S73), the block block 'LD, AND, OR, ORB' to the IL object Check whether MPP, MRD, and MPS 'are included (S74), and if so, create a new IL block (S75), and if not, insert the IL object into the most recently generated IL block (S76). Repeat.
  • the common block converting unit 16 generates a common object by converting an instruction into a common instruction for each of at least one IL object in the at least one IL block by using a common instruction library to generate the at least one IL block. At least one common block is converted (S77).
  • the coupling relationship expression unit 17 expresses the coupling relationship between the at least one shared block by at least one of the symbols "[", "]” and ",” using a coupling command. This may be performed by steps S78 to S90 in FIG. 19.
  • the coupling relationship expression unit 17 sequentially extracts the public blocks shown in FIG. 8 (S78), and checks whether the extracted public block is the last public block (S79).
  • the association relationship expression unit 17 checks whether the combined instruction ORB or OR is included in the extracted common block (S80). If included, "[", ",", “]” is inserted into the two previous shared blocks (S81).
  • the association relation expression unit 17 checks whether the combined common block ANB is included in the extracted common block (S82). If included, the two preceding public blocks of the extracted common block are pasted (S83).
  • the association relationship expression unit 17 checks whether the combined common block MPS is included in the extracted common block. If included, insert "[" in front of the corresponding common block (S85).
  • the association relationship expression unit 17 checks whether the joint command MRD is included in the extracted common block (S86). If included, the ",” is inserted in front of the corresponding common block (S87).
  • the association relationship expression unit 17 determines that the combined common block MPP is included in the extracted common block, and inserts ",” in front of the corresponding common block. Insert "]" at the rear (S88).
  • the joint relationship expression unit 17 sequentially merges the common blocks in which the joint relationship is indicated in the common format (S89), and the joint relationship between the merged public blocks. Output the common format indicated by (S90).
  • the present invention can be used in the field of development of PLC control program.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

PLC 제어프로그램의 공용형식 변환장치 및 방법이 개시된다. 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치는, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함한다.

Description

PLC 제어 프로그램의 공용형식 변환장치 및 방법
본 발명은 PLC(Programmable Logic Controller) 제어 프로그램의 공용형식 변환장치 및 방법에 관한 것으로, 더욱 자세하게는 PLC 제조사 별로 서로 다른 텍스트 형식을 갖는 PLC 제어 프로그램을 공용형식(common type)의 PLC 제어 프로그램으로 변환하는 PLC 제어 프로그램의 공용형식 변환장치 및 방법에 관한 것이다.
PLC(Programmable Logic Controller)는 자동화 산업의 공정제어를 위한 안정성이 보장된 제어장치로써, 다품종 소량생산으로 인한 현장의 잦은 시스템 변경에 대응하기 위해 프로그램이 가능하며 소규모이고 시스템 변경에 비교적 자유로운 제어기의 필요성에서부터 개발되었다.
PLC를 동작하기 위한 프로그래밍 언어에는 LD(Ladder Diagram), FBD(Function Block Diagram), ST(Structured Text), IL(Instruction List), SFC(Sequential Function Chart), CFC(Continuous Function Chart) 등이 있으며, 국제 규격 IEC 61131-3에 규정되어 있다.
PLC 제어 프로그램의 구조는 크게 PLC의 접점에 대한 정보를 담고 있는 태그 정보와 구동되는 PLC 프로그램에 대한 정보를 담고 있는 로직 정보로 구분할 수 있다. 이 중 로직 정보는 자동화 공정을 운영하는데 있어서 가장 기본이 되는 요소로써 설비/공정/라인 제어를 위한 시퀀스(sequence)와 조건 등에 대한 정보를 모두 포함하고 있어서, 최근 공정 운영 최적화 방법에 대한 관심이 높아지고 있는 상황에서, 공정 운영 분석을 위한 핵심 정보로 사용될 수 있다.
PLC 제어 프로그램의 제어 로직은 다양한 PLC 프로그래밍 언어들 중 언어의 직관성과 단순함으로 인하여 산업 현장 대부분에서 LD로 프로그래밍 되고 있다. LD는 스텝(step) 별로 출력을 위한 접점(Contact)들을 AND, OR구조로 배치하고 다양한 산술, 함수 등을 사용하여 공정제어를 위한 시퀀스와 조건 등의 작성이 이루어지도록 한다.
LD로 작성된 PLC 제어 프로그램은 처리 및 분석을 위해서 텍스트(Text) 기반의 PLC 제어 프로그램으로 변환된다. 텍스트 기반의 PLC 제어 프로그램의 형태는 PLC 제조사 별로 상이하다. PLC 제조사인 미쯔비시(MITSUBISHI)와 LS 산전의 경우 IL을 이용하여 PLC 제어 프로그램의 제어 로직을 텍스트로 표현하며, 지멘스(SIEMENS)사의 경우 STL로 PLC 제어 프로그램의 제어 로직을 텍스트로 표현하며, Rockwell 사의 경우 자사의 플랫폼에 따라 PLC 제어 프로그램의 제어 로직을 텍스트로 표현한다.
사용자는 PLC 제조사마다 제공하는 PLC 프로그래밍 소프트웨어를 이용하여 LD로 작성된 PLC 제어프로그램의 제어 로직을 직관적으로 또는 쉽게 이해할 수 있다.
공정 운영 분석을 위해 추출해내는 텍스트 기반의 PLC 제어 프로그램의 제어 로직의 경우 LD의 형태가 아닌 PLC 제조사별로 상이한 구조를 갖기 때문에, 사용자는 각 PLC 제조사별 PLC 제어프로그램의 제어 로직을 분석하기 위해서 각 PLC 제조사별 PLC 제어프로그램의 제어 로직의 표현방법을 파악하고 있어야 한다.
하지만 사용자가 각 PLC 제조사별 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하기 위해서 많은 노력과 시간을 투자하여야 한다는 문제점이 발생한다.
사용자가 PLC 제조사별로 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하지 않아도 PLC 제어프로그램을 공용형식으로 변환하여 PLC 제어프로그램의 제어 로직을 용이하게 분석할 수 있도록 한 PLC 제어프로그램의 공용형식변환장치 및 방법이 제안된다.
본 발명의 해결 과제는 이상에서 언급한 해결 과제로 제한되지 않으며, 언급되지 않은 또 다른 해결 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일 양상에 따른 PLC 제어프로그램의 공용형식 변환장치는, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함한다.
상기 공용명령어 생성 알고리즘은, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계; 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및 기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함한다.
상기 제3단계는, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 제3단계는, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다.
상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현될 수 있다.
상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작될 수 있다.
상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현될 수 있다.
상기 공용형식 변환부는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 IL 오브젝트 생성부; 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 IL 블록 생성부; 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 공용블록 변환부; 및 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 결합관계 표현부를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환할 수 있다.
본 발명의 다른 실시예에 따른 PLC 제어프로그램의 공용형식 변환방법은, 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 단계; 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인하는 단계; 및 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계를 포함한다.
상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 단계; 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 단계; 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 단계; 및 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 단계를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환할 수 있다.
본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치 및 방법에 따르면, 사용자가 PLC 제조사별로 PLC 제어프로그램의 제어 로직의 표현 방법을 모두 파악 또는 습득하지 않아도 PLC 제어프로그램을 공용형식으로 변환하여 PLC 제어프로그램의 제어 로직을 용이하게 분석할 수 있도록 해준다.
도 1은 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치를 나타낸 블록 구성도이다.
도 2는 공용명령어에 대한 XML 파일 형식에 대한 예시를 나타낸 도면이다.
도 3은 공용형식 변환부의 블록 구성도를 나타낸 도면이다.
도 4는 미츠비시 Developer의 Column이 4개(StepNumber, Note, Command, Operand의 순으로)인 데이터 구조를 나타낸 도면이다.
도 5는 공용형식 변환 불가능 케이스를 나타낸 도면이다.
도 6은 LD 구조의 미츠비시 PLC 프로그램에 대한 텍스트 기반의 미츠비시 PLC 제어프로그램을 예시한 도면이다.
도 7은 IL 오브젝트들을 예시한 도면이다.
도 8은 IL 블록들을 예시한 도면이다.
도 9는 도 8에 도시된 공용블록들에 대해서 결합 명령어 OR을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 10은 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ANB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 11은 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ORB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 12는 도 8에 도시된 공용블록들에 대해서 OR, ANB, ORB를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 13은 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 적용한 결과를 나타낸 도면이다.
도 14는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 적용한 결과를 나타낸 도면이다.
도 15는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 적용한 결과를 나타낸 도면이다.
도 16은 도 12에 도시된 공용블록들에 대해서 MPS, MRD, MPP를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 17은 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과를 나타낸 도면이다.
도 18은 본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법에 대한 흐름도이다.
도 19는 도 18에 도시된 단계 S50의 구체적인 수행 흐름도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 
본 발명의 실시예들은 당해 기술 분야에서 통상의 지식을 가진 자에게 본 발명을 더욱 완전하게 설명하기 위하여 제공되는 것이며, 아래의 실시예들은 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 아래의 실시예들로 한정되는 것은 아니다. 오히려, 이들 실시예는 본 개시를 더욱 충실하고 완전하게 하며 당업자에게 본 발명의 사상을 완전하게 전달하기 위하여 제공되는 것이다. 
본 명세서에서 사용된 용어는 특정 실시예를 설명하기 위하여 사용되며, 본 발명을 제한하기 위한 것이 아니다. 본 명세서에서 사용된 바와 같이 단수 형태는 문맥상 다른 경우를 분명히 지적하는 것이 아니라면, 복수의 형태를 포함할 수 있다. 또한, 본 명세서에서 사용되는 경우 "포함한다(comprise)" 및/또는"포함하는(comprising)"은 언급한 형상들, 숫자, 단계, 동작, 부재, 요소 및/또는 이들 그룹의 존재를 특정하는 것이며, 하나 이상의 다른 형상, 숫자, 동작, 부재, 요소 및/또는 그룹들의 존재 또는 부가를 배제하는 것이 아니다. 본 명세서에서 사용된 바와 같이, 용어 "및/또는"은 해당 열거된 항목 중 어느 하나 및 하나 이상의 모든 조합을 포함한다. 
본 명세서에서 제1, 제2 등의 용어가 다양한 부재, 영역 및/또는 부위들을 설명하기 위하여 사용되지만, 이들 부재, 부품, 영역, 층들 및/또는 부위들은 이들 용어에 의해 한정되어서는 안됨은 자명하다. 이들 용어는 특정 순서나 상하, 또는 우열을 의미하지 않으며, 하나의 부재, 영역 또는 부위를 다른 부재, 영역 또는 부위와 구별하기 위하여만 사용된다. 따라서, 이하 상술할 제1 부재, 영역 또는 부위는 본 발명의 가르침으로부터 벗어나지 않고서도 제2 부재, 영역 또는 부위를 지칭할 수 있다.
이하, 본 발명의 실시예들은 본 발명의 실시예들을 개략적으로 도시하는 도면들을 참조하여 설명한다. 도면들에 있어서, 예를 들면, 제조 기술 및/또는 공차에 따라, 도시된 형상의 변형들이 예상될 수 있다. 따라서, 본 발명의 실시예는 본 명세서에 도시된 영역의 특정 형상에 제한된 것으로 해석되어서는 아니 되며, 예를 들면 제조상 초래되는 형상의 변화를 포함하여야 한다.
도 1은 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치를 나타낸 블록 구성도이다.
도 1을 참조하면, 본 발명의 실시예에 따른 PLC 제어프로그램의 공용형식 변환장치는(10)는 구축부(11), 저장부(12) 및 공용형식 변환부(13)를 포함한다.
구축부(11)는 공용명령어 생성알고리즘에 따라, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하여 저장부(12)에 저장한다.
이러한 공용 명령어 라이브러리의 구축이 원활하게 이루어지기 위해서, 먼저 공용 명령어 라이브러리의 구축 시작 전에 PLC 제조사별로 PLC 제어프로그램에서 사용되는 명령어 정보 및 이에 대응되는 공용명령어 정보가 이미 구축부(11)에 저장 또는 입력이 완료되어 있는 것이 바람직하다.
이렇게 PLC 제조사별 PLC 제어프로그램에서 사용되는 명령어들이 준비된 상태가 되면, 구축부(11)는 공용명령어 생성 알고리즘에 따라 공용 명령어 라이브러리를 구축한다.
이때, 공용 명령어 생성 알고리즘은, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하기 위해서 제1단계, 제2단계 및 제3단계를 순차적으로 수행하는 알고리즘이다.
제1단계는 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 단계이다.
예를 들어, 표시상 '같다'라는 명령어에 대해서 미츠비스(Mitsubishi) 사의 경우 'OR='로 표시되고, AB사의 경우 'EQU'로 표시되고, 지멘스(Siemens)사의 경우 '==I'로 표시되고, LS 산전의 경우 'OR='로 표시된다. 따라서 제1단계에서 '같다' 명령어 그룹에는, 미츠비시(Mitsubishi) 사의 경우 'OR=', AB사의 경우 'EQU', 지멘스(Siemens)사의 경우 '==I', LS 산전의 경우 'OR='이 포함될 수 있다.
이후 제2단계는 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 단계이다.
예를 들어, 제2단계에서는 '같다' 명령어 그룹에 속한, 'OR=', 'EQU', '==I', 'OR='이 모두 동일기능인가의 확인이 이루어지게 되는 것이다.
제3단계는 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인지 아니면 그렇지 않은 경우에 따라서 공용 명령어를 다른 방식으로 생성하는 단계이다.
먼저, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성된다.
예를 들어, '같다' 명령어 그룹에 속한, 'OR=', 'EQU', '==I', 'OR='의 경우 모두 동일 기능을 가지므로, '같다'를 표시하는 사전상 단어인 'EQUAL'을 상기 동일 기능인 갖는 명령어들에 대한 공용명령어로 생성할 수 있다. 사전상 단어인 'EQUAL'만을 공용명령어로 하는 것에 국한되지 않는다.
그리고 상기 동일 기능을 갖는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용명령어에 삽입할 수 있다. 이러한 명령어의 파라미터를 한정하는 한정자, 즉 D(Double), BK(Block), U(Unsigned), G(Group), R(Real), L(Long), 4(4bit), 8(8Bit), $(String), C(Complement) 들 중 어느 하나가 해당 명령어에 포함된 경우, 해당 명령어의 공용명령어에 파라미터 한정자가 접두사로 삽입될 수 있다. 그러나 파라미터 한정자가 삽입되는 위치는 이에 한정되지 않는다.
예를 들어, '같다'에 대한 AB사의 명령어 'DEQU'는 명령어 'EQU'에 파라미터 한정자 D(Double)가 붙은 명령어이다. 'D'는 명령어 'EQU'의 파라미터 크기를 한정한다. 'EQU' 명령어는 1 Word(16bit)를 처리하는 명령어인데, 'DEQU'는 2 Word(32bit)를 처리하는 명령어이다. 이와 같이 명령어 파라미터(parameter)를 한정 짓는 파라미터 한정자는 공용명령어의 접두사로 삽입될 수 있다.
그리고 상기 동일 기능을 갖는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용명령어에 삽입할 수 있다. 이러한 명령어의 동작을 한정하는 동작 한정자, 즉 P(Postive Pulse), N(Negative Pulse) 들 중 어느 하나가 해당 명령어에 포함된 경우, 해당 명령어의 공용명령어에 동작 한정자가 접미사로 삽입될 수 있다. 그러나 동작 한정자가 삽입되는 위치는 이에 한정되지 않는다.
예를 들어, 미츠비시 사의 'ANDP' 명령어는 어드레스(address)의 값이 On 되면 On이 되는 기능을 가진 접점인 'AND'를 양(Positvie)의 펄스(Pulse) 형태로 변환하는 동작 한정자인 'P(Positive pulse)'를 포함한다. 따라서 'ANDP'에 대한 공용명령어인 'XICP'는 'AND'에 대한 공용명령어인 'XIC(eXamine If Closed)'에 동작 한정자인 'P'를 접미사로 붙여서 생성될 수 있다.
한편, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용명령어에 삽입할 수 있다.
예를 들어, 상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않는 경우로는, 명령어 'LIMIT' 등을 들 수 있다. 명령어 'LIMIT'는 미츠비시 사, LS 산전, AB 사의 PLC 제어 프로그램에서 표시상 동일하게 사용되고 있으나 동일한 기능을 갖지 않고 있다. 'LIMIT' 명령어는 지멘스 사의 PLC 제어 프로그램에서 사용되지 않는 명령어이다.
따라서 명령어 'LIMIT'에 대한 공용 명령어는 사전상 단어인 'LIMIT'로 생성될 수 있다. 명령어 'LIMIT'는 PLC 제조사마다 모두 동일 기능을 하지 않으므로, 공용명령어 'LIMIT'에 각 PLC의 제조사 명칭을 삽입할 수 있다. 실시예로, 미츠비시 사의 경우 'm', 지멘스 사의 경우 's', AB 사의 경우 'ab', LS 산전의 경우 'ls'를 공용명령어 'LIMIT'의 접두사로 삽입할 수 있다. 즉 미츠비시 사의 경우 'mLIMIT'가 되고 지멘스 사의 경우 'sLIMIT'가 되고 AB 사의 경우 'abLIMIT'가 되고 LS 산전의 경우 'lsLIMIT'가 될 수 있다.
그리고 상기 동일 기능을 갖지 않는 명령어들에 대한 공용명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용명령어에 삽입할 수 있다.
예를 들어, AB사의 명령어 'DLIMIT'는 명령어 'LIMIT'에 파라미터 한정자 D(Double)가 붙은 명령어이다. 'D'는 명령어 'LIMIT'의 파라미터 크기를 한정한다. 'LIMIT' 명령어는 1 Word(16bit)를 처리하는 명령어인데, 'DLIMIT'는 2 Word(32bit)를 처리하는 명령어이다. 이와 같이 명령어 파라미터(parameter)를 한정 짓는 파라미터 한정자는 공용명령어에 삽입될 수 있는데, PLC 제조사를 나타내는 접두사, 예를 들어 AB사를 나타내는 'ab'가 나온 후 배치될 수 있다. 결국 AB사의 명령어 'DLIMIT'에 대한 공용명령어는 'abDLIMIT'일 수 있다.
그리고, 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입할 수 있다. 예를 들어, 미츠비시 사의 ‘LIMITP’명령어는 명령어 ‘LIMIT’에 양(Positive)의 펄스(Pulse) 형태로 변환하는 동작 한정자인 ‘P(Postive Pulse)’를 포함한다. 이와 같이 명령어의 동작을 한정 짓는 동작 한정자는 공용 명령어에 접미사로 삽입될 수 있다. 결국 미츠비시 사의 명령어 ‘LIMITP’에 대한 공용 명령어는 ‘mLIMITP’일 수 있다.
이렇게 1단계 내지 3단계를 순차적으로 수행하면서 생성된 공용명령어를 XML(eXtensible Markup Language) 파일 형식으로 변환하여 공용명령어 라이브러리를 저장부(12)에 구축할 수 있다.
이러한 공용명령어에 대한 XML 파일 형식에 대한 예시가 도 2에 도시되어 있다. 도 2를 참조하면, 공용명령어에 대한 XML 파일은 공용명령어(Instructio Name) 'XIC', 'XICP' 및 'XICF' 각각 마다 대응되는 명령어를 PLC 제조사별로 포함한다.
예를 들어, 공용명령어 'XIC'에 대해서, AB 사의 경우 명령어 'XIC'가 대응되고, 미츠비시 사의 경우 'LD', 'AND', 'OR'가 각각 대응되고, 지멘스 사의 경우 'A', 'O'가 대응되고, LS 산전의 경우 'LOAD', 'AND', 'OR'가 대응될 수 있다.
이와 같은 과정을 통해서 공용명령어 라이브러리가 구축된 후, 공용형식으로의 변환 요청이 있는 경우, 도 3에 도시된 공용형식 변환부(13)의 동작에 대해서 살펴보기로 한다.
공용형식 변환부(13)는 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다.
이러한 공용형식 변환부(13)는 도 3에 도시된 바와 같이, IL 오브젝트 생성부(14), IL 블록 생성부(15), 공용 블록 변환부(16) 및 결합관계 표현부(17)를 포함하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다.
IL 오브젝트 생성부(14)는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능한가를 확인한다.
이때 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로 변환가능 여부는 상기 임의의 텍스트 기반의 PLC 제어프로그램의 파일 확장자, 데이터 구조 중 적어도 하나를 이용하여 판단될 수 있다.
실시예로, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로 변환가능 여부는 1차적으로 상기 임의의 텍스트 기반의 PLC 제어프로그램의 파일 확장자를 확인한다.
상기 확인된 파일 확장자가 설정된 파일 확장자에 해당 되면 2차적으로 상기 임의의 텍스트 기반의 PLC 제어프로그램의 데이터 구조가 설정된 데이터 구조에 해당되는가를 확인한다.
확인결과 상기 임의의 텍스트 기반의 PLC 제어프로그램의 데이터 구조가 설정된 데이터 구조에 해당 되면 상기 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능한 것으로 판단될 수 있다.
이때 설정된 데이터 구조는 PLC 제조사별 PLC 제어 프로그램마다 상이하며, Column의 개수일 수 있다. 예를 들어, LS 산전의 경우 Column이 2개인 데이터 구조를 가지며, 미츠비시 Developer의 경우 도 4에 도시된 바와 같이 Column이 4개(StepNumber, Note, Command, Operand의 순으로)인 데이터 구조를 가지며, 미츠비시 Works2의 경우 Column이 11개인 데이터 구조를 가지며, 미츠비시 Works3의 경우 Column이 20개 이상인 데이터 구조를 가질 수 있다.
이러한 설정된 데이터 구조가 아닌 데이터 구조를 갖는 경우는 임의의 텍스트 기반의 PLC 제어프로그램은 공용형식의 PLC 제어프로그램으로 변환될 수 없다.
이에 대한 예시가 도 5에 도시되어 있다.
도 5를 참조하면, 공용형식 변환 불가능 케이스는 AB 사의 ST(Structured Text)라는 로직이다. 이 로직이 공용형식으로 변환이 불가능한 이유는 사용자로부터 .NET 기반의 프로그램(program) 코드와 같은 방식으로 자유로운 형식으로 입력되기 때문에 규칙성을 찾기 어렵기 때문이다. 예를 들어 For문이 몇 번 사용될지, 중첩해서 쓰일지 아니면 따로따로 쓰일지에 대해서 사용자마다 다 다르기 때문이다.
그리고, 공용형식 변환 불가능 케이스는 temp라는 내부변수에 대한 정의를 사용자가 마음대로 할 수 있으며 내부 변수의 주소가 PLC 메모리의 특정 영역을 할당하고 있지 않고 있기 때문에, 공용형식으로 변환이 불가능하다.
이러한 공용형식으로 변환가능한 것으로 확인된 임의의 텍스트 기반의 PLC 제어프로그램에 대한 예시가 도 6에 도시되어 있다.
도 6을 참조하면, LD 구조의 미츠비시 PLC 프로그램에 대한 텍스트 기반의 미츠비시 PLC 제어프로그램이 도시되어 있다.
텍스트 기반의 미츠비시 PLC 제어프로그램은 3개의 Column으로 구성되어 있다.
이하에서는 도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램을 참조로 하여 공용형식의 PLC 제어프로그램으로 변환되는 과정을 설명한다.
IL 오브젝트 생성부(14)는, 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성한다. 즉 본 발명의 전체에서 사용되는 IL 오브젝트는 접점과 동일한 의미로 사용된다.
이때 명령어는 도 6을 참조하면 LD, ANI, AND, LDI, LD=, ORD=, ANB, ORB, MPS, AND, +, MRD, OUT, MPP, LIMIT 등을 나타내며, 태그는 X1, X2, X3, D100, D101, M0, D200, D201, D202, M1, Y0, K30, D210 등을 나타낸다. 태그는 예를 들어 D200에서와 같이 데이터 타입(data type) 'D'와 어드레스(address) '200'을 가지고 있어서, 실제로 PLC 하드웨어의 메모리 주소 값을 나타낸다.
도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램에 대한 IP 오브젝트 생성부(14)의 수행결과에 따라 생성된 IL 오브젝트들을 나타낸 도면이 도 7에 도시되어 있다.
도 7을 참조하면, IL 오브젝트들은 도 6에 도시된 텍스트 기반의 미츠비시 PLC 제어프로그램의 제어 로직 순서에 따라 배열되고 있음을 확인할 수 있다. 즉 IL 오브젝트들의 순서는 텍스트 기반의 미츠비시 PLC 제어프로그램의 제어 로직 순서와 같다.
구체적으로 IL 오브젝트들의 순서를 명령어(Command)의 순서로 나열하면, 'LD' -> 'ANI' -> 'AND' -> 'LDI' -> 'LD=' -> 'ORD=' -> 'ANB' -> 'ORB' -> 'MPS' -> 'AND' -> '+' -> 'MRD' -> 'AND' -> 'MPP' -> 'LIMIT'이다.
IL 블록 생성부(15)는, 블록(Block) 명령어를 이용하여, IL 오브젝트 생성부(14)에서 생성된 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성한다.
이때 블록 명령어는 LD, ANB, OR, ORB, MPP, MRD, MPS를 포함한다.
LD는 Load의 약어로 제어 로직 상의 접점이 로드(load)되어 있다는 것을 나타낸다. LD로 인해서 PLC 프로그램의 제어 로직의 블록들이 계속 생성될 수 있다.
ANB는 AND Block의 의미로써 AND 명령어의 앞에 생성된 2개의 블록이 서로 AND 관계에 있다는 것을 나타낸다.
OR는 OR 명령어 앞의 심볼(symbol)과 OR 명령어의 심볼이 서로 OR 관계에 있다는 것을 나타낸다.
ORB는 OR Block의 의미로써 ORB 명령어의 앞에 생성된 2개의 블록이 서로 OR 관계에 있다는 것을 나타낸다.
MPS는 Multi Point Start의 의미로써 여러 개의 출력(Output) 접점이 나타날 때 첫 번째 출력(Output) 접점과 그 출력 접점과 관계가 있는 접점들의 가장 앞쪽에 쓰여 진다.
MRD는 Multi Read Down의 의미로써 3개 이상의 출력 접점이 나타날 때 사용된다.
MPP는 Multi Point Period의 의미로써 여러 개의 출력 접점이 나타날 때 가장 마지막 출력 접점과 그 출력 접점과 관계가 있는 접점들의 가장 앞쪽에 쓰여 진다.
이때 블록 명령어 중 OR, ORB, ANB, MPS, MRD, MPP는 결합관계 표현부(17)에서 사용되는 결합 명령어이다. 이 중 OR 명령어를 제외한 결합 명령어는 IL 오브젝트로 표현될 시에 명령어만을 포함하여 각 블록 간의 결합 관계만을 표현한다. 따라서 블록 간의 관계를 나타내는 블록 결합 명령어이기 때문에 공용 블록으로의 변환부(16)의 실행 시 해당 블록 결합 명령어를 포함한 IL 오브젝트의 명령어를 공용 명령어로 변환하지 않는다.
IL 블록 생성부(15)는 도 7에 예시된 바와 같이 제어 로직 순으로 배열된 IL 오브젝트들을 이동하면서 IL 오브젝트들에 블록 명령어가 포함되어 있는가를 확인하고, 블록 명령어가 포함되어 있으면 새로운 IL 블록을 생성한다. 한편, 블록 명령어가 포함되어 있지 않으면 새로운 블록 명령어가 나타나기 전까지 앞서 생성된 IL 블록에 순차적으로 IL 오브젝트를 포함 시킨다.
이러한 IL 블록 생성과정을 거쳐서 생성된 IL 블록들이 도 8에 도시되어 있다.
도 8을 참조하면, 상기 생성된 IL 블록들은 모두 9개로 이루어져 있다.
1번 IL 블록은 블록 명령어 'LD'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 LD인 IL 오브젝트, 명령어 ANI인 IL 오브젝트, 명령어 AND인 IL 오브젝트를 포함한다.
이때 LD는 Load의 뜻으로 해당 태그 X1을 제어 로직 상에 로드(load)시킨다는 것을 나타낸다. 실제로 PLC 하드웨어의 메모리의 어드레스 X1이 ON되면 해당 접점은 ON 된다.
2번 IL 블록은 블록 명령어 'LDI'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 LDI인 IL 오브젝트를 포함한다.
이때 LDI는 Load Inverse를 의미하는 것으로써, 태그 X1을 제어 로직 상에 로드(load) 시킨다는 것을 나타낸다. Inverse의 의미를 담고 있으므로 태그 X1이 OFF 되었을 때 해당 접점이 ON 된다.
3번 IL 블록은 블록 명령어 'LD='에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'LD='인 IL 오브젝트를 포함한다.
이때 'LD='는 '같다'의 의미의 접점을 제어 로직 상에 로드(load)시킨다는 것을 나타낸다. 접점이 포함하고 있는 D100, D101 어드레스의 값이 동일하면 해당 접점이 ON 된다.
4번 IL 블록은 블록 명령어 'ORD='에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ORD='인 IL 오브젝트를 포함한다.
이때 'ORD='는 '같다'의 의미의 접점이 앞선 심볼과 OR 관계에 놓여있는 것을 나타낸다. ORD는 OR 뒤에 'D'가 붙었으므로 32bit(Double word)를 비교하는 명령어이다. 따라서 'ORD='는 태그 D100, D100 어드레스의 값을 32bit로 비교하는 명령어이다.
5번 IL 블록은 블록 명령어 'ANB'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ANB'인 IL 오브젝트를 포함한다.
6번 IL 블록은 블록 명령어 'ORB'에 의해서 생성되며, 1개의 IL 오브젝트 즉 명령어 'ORB'인 IL 오브젝트를 포함한다.
7번 IL 블록은 블록 명령어 'MPS'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 'MPS'인 IL 오브젝트, 명령어 'AND'인 IL 오브젝트, 명령어 '+'인 IL 오브젝트를 포함한다.
이때 명령어 '+'는 더하기(add)의 의미를 가지며 접점이 포함하고 있는 3개의 어드레스의 값 중 앞선 2개 어드레스의 값을 더하여 마지막 어드레스에 저장하라는 명령어이다.
8번 IL 블록은 블록 명령어 'MRD'에 의해서 생성되며, 3개의 IL 오브젝트 즉 명령어 'MRD'인 IL 오브젝트, 명령어 'AND'인 IL 오브젝트, 명령어 OUT인 오브젝트를 포함한다.
9번 IL 블록은 블록 명령어 'MPP'에 의해서 생성되며, 2개의 IL 오브젝트 즉 명령어 'MPP'인 IL 오브젝트, 명령어 'LIMIT'인 IL 오브젝트를 포함한다.
공용 블록 변환부(16)는 상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환한다.
이러한 공용 블록 변환부(16)의 동작에 대해서 도 8에 도시된 IL 블록들을 참조하여 살펴보기로 한다.
공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여 IL 블록 내의 명령어를 공용명령어로 변환해서, 도 8에 도시된 9개의 IL 블록을 각각 공용 블록으로 변환한다.
먼저, 1번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LD'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 'ANI'인 IL 오브젝트를 공용명령어 'XIO'인 공용 오브젝트로 변환하고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환함으로써, 1번 IL 블록을 1번 공용 블록으로 변환한다. 따라서 1번 공용 블록의 공용형식은 'XIC(X1)XIO(X2)XIC(X3)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LD'에 대한 공용명령어 'XIC', 명령어 'ANI'에 대한 공용명령어 'XIO', 명령어 'AND'에 대한 공용명령어 'XIC'가 대응되어 있어야 한다.
2번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LDI'인 IL 오브젝트를 공용명령어 'XIO'인 공용 오브젝트로 변환함으로써, 2번 IL 블록을 2번 공용 블록으로 변환한다. 따라서 2번 공용 블록의 공용형식은 'XIO(X1)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LDI'에 대한 공용명령어 'XIO'가 대응되어 있어야 한다.
3번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'LD='인 IL 오브젝트를 공용명령어 'EQUAL'인 공용 오브젝트로 변환함으로써, 3번 IL 블록을 3번 공용 블록으로 변환한다. 따라서 3번 공용 블록의 공용형식은 'EQUAL(D100,D101)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LD='에 대한 공용명령어 'EQUAL'가 대응되어 있어야 한다.
4번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'ORD='인 IL 오브젝트를 공용명령어 'DEQUAL'인 공용 오브젝트로 변환함으로써, 4번 IL 블록을 4번 공용 블록으로 변환한다. 따라서 4번 공용 블록의 공용형식은 'DEQUAL(D100,D101)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'ORD='에 대한 공용명령어 'DEQUAL'가 대응되어 있어야 한다.
한편, 결합 명령어를 포함하는 IL 오브젝트의 경우 결합 명령어에 대한 공용명령어로 변환하지 않고서 공용 오브젝트로 변환함으로써, 결합 명령어를 포함한 IL 오브젝트를 공용블록으로 변환할 수 있다.
블록 명령어 중 OR, ORB, ANB, MPS, MRD, MPP는 결합관계 표현부(17)에서 사용되는 결합 명령어이다. 이 중 OR 명령어를 제외한 결합 명령어는 IL 오브젝트로 표현될 시에 명령어만을 포함하여 각 블록 간의 결합 관계만을 표현한다. 따라서 블록 간의 관계를 나타내는 블록 결합 명령어이기 때문에 공용 블록으로의 변환부(16)의 실행 시 해당 블록 결합 명령어를 포함한 IL 오브젝트의 명령어를 공용 명령어로 변환하지 않는다. 따라서 공용 명령어로 변환되지 않은 IL 오브젝트의 명령어는 공용 오브젝트로의 변환 시 명령어 부분이 공백으로 처리되어 표현되지 않는다.
즉 도 8의 예시에서는 5번 IL 블록, 6번 IL 블록, 7번 IL 블록, 8번 IL 블록 및 9번 IL 블록에서 블록 결합 명령어를 포함하는 IL 오브젝트들의 경우 명령어를 공용명령어로의 변환이 이루어지지 않아 공용 블록의 공용형식이 표시되지 않는다.
5번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'ANB'인 IL 오브젝트를 공용명령어로 변환하지 않고 5번 IL 블록을 5번 공용 블록으로 변환한다. 5번 공용 블록의 공용형식은 표현되지 않는다.
6번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'ORB'인 IL 오브젝트를 공용명령어로 변환하지 않고 6번 IL 블록을 6번 공용 블록으로 변환한다. 6번 공용 블록의 공용형식은 표현되지 않는다.
7번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 블록 결합 명령어 'MPS'인 IL 오브젝트를 공용명령어로 변환하지 않고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 '+'인 IL 오브젝트를 공용명령어 'ADD'인 공용 오브젝트로 변환함으로써, 7번 IL 블록을 7번 공용 블록으로 변환한다. 따라서 7번 공용 블록의 공용형식은 'XIC(M0)ADD(D200,D201,D202)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'AND'에 대한 공용명령어 'XIC', 명령어 '+'에 대한 공용명령어 'ADD'가 대응되어 있어야 한다.
8번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'MRD'인 IL 오브젝트를 공용명령어 'MRD'인 공용 오브젝트로 변환하고, 명령어 'AND'인 IL 오브젝트를 공용명령어 'XIC'인 공용 오브젝트로 변환하고, 명령어 'OUT'인 IL 오브젝트를 공용명령어 'OUT'인 공용 오브젝트로 변환함으로써, 8번 IL 블록을 8번 공용 블록으로 변환한다. 따라서 8번 공용 블록의 공용형식은 'XIC(M1)OUT(Y0)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'AND'에 대한 공용명령어 'XIC', 명령어 'OUT'에 대한 공용명령어 'OUT'가 대응되어 있어야 한다.
9번 IL 블록에 대해서, 공용 블록 변환부(16)는 상기 공용명령어 라이브러리를 이용하여, 명령어 'MPP'인 IL 오브젝트를 공용명령어 'MPP'인 공용 오브젝트로 변환하고, 명령어 'LIMIT'인 IL 오브젝트를 공용명령어 'mLIMIT'인 공용 오브젝트로 변환함으로써, 9번 IL 블록을 9번 공용 블록으로 변환한다. 따라서 9번 공용 블록의 공용형식은 'mLIMIT(D200,D202,K30,D210)'로 표현될 수 있다.
이때 공용명령어 라이브러리에는 명령어 'LIMIT'에 대한 미츠비시 사의 공용명령어 'mLIMIT'가 대응되어 있어야 한다.
이렇게 IL 블록들을 공용 블록들로 변환하는 과정이 완료되면, 공용 블록들 간의 결합관계를 표현함으로써, 최종적으로 임의의 텍스트 기반의 PLC 제어프로그램을 공용형식의 PLC 제어프로그램을 변환한다.
이때, 상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현될 수 있다. 상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작될 수 있다.
상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현될 수 있다. 이때 기호 "[", "]"는 결합점을 나타내며, 기호 "," 는 분기점을 나타낸다.
이하에서, 공용블록들 간의 결합관계 표현은 도 2에 도시된 결합관계 표현부(17)에 의해서 수행될 수 있다.
결합관계 표현부(17)는, 결합 명령어를 이용하여 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현한다.
이때 결합명령어는 OR, ORB, ANB, MPP, MPS, MRD를 포함할 수 있다. 입력부(조건부)에 사용되는 결합 명령어는 OR, ANB, ORB이고, 출력부에 사용되는 결합 명령어는 MPS, MRD, MPP이다.
이러한 결합명령어를 이용하여 결합관계 표현부(17)는 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 이를 위해서 결합관계 표현부(17)는 입력부(조건부)에 사용되는 결합 명령어에 따라 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하고, 이후 출력부에 사용되는 결합 명령어에 따라 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다.
본 발명의 실시예에서는 입력부에 사용되는 결합명령어를 OR->ANB->ORB 순서로 공용형식으로 표현된 공용블록들에 적용하여, 공용형식으로 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 입력부에 사용되는 결합명령어를 OR->ANB->ORB 순서로 공용형식으로 표현된 공용블록들에 적용하는 것은 하나의 실시예에 불과하며 이에 한정되지 않는다.
그리고 출력부에 사용되는 결합 명령어를 MPS->MRD->MPP 순서로 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들에 적용하여, 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현할 수 있다. 출력부에 사용되는 결합 명령어를 MPS->MRD->MPP 순서로 상기 입력부에 사용되는 결합 명령어에 의해서 표현된 공용블록들에 적용하는 것은 하나의 실시예에 불과하며 이에 한정되지 않는다.
이에 대해서 도 9 내지 도 17을 참조하여 살펴보기로 한다.
도 9는 도 8에 도시된 공용블록들에 대해서 결합 명령어 OR을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 9를 참조하면, 결합관계 표현부(17)는 도 8에 도시된 공용블록들에 결합 명령어 OR를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 OR를 포함한 공용블록이 있으면 결합 명령어 OR이 포함된 공용블록과 바로 앞 공용블록의 2개 공용블록 간의 결합관계를 기호 "[", "]" 및 ","를 이용하여 표현한다.
도 9에서는 결합명령어 OR를 포함한 4번 공용블록과 3번 공용블록 간의 결합관계를 기호 "[", "]" 및 ","를 이용하여 표현한다.
이에 대해서 좀 더 구체적으로 살펴보기로 한다. 먼저 결합명령어 OR를 포함한 4번 공용블록 앞의 3번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S1).
이후 결합명령어 OR를 포함한 4번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S2).
결합명령어 OR를 포함한 4번 공용블록 뒤의 5번 공용블록이 결합명령어 OR를 포함하고 있는지를 확인하고, 5번 공용블록이 결합명령어 OR를 포함하고 있지 않으면 4번 공용블록의 공용형식 표현의 가장 마지막에 "]"를 삽입하며, 5번 공용블록이 결합명령어 OR를 포함하는 경우 4번 공용블록의 공용형식 표현의 가장 마지막에 ","를 삽입한다(S3).
이후 3번 공용블록과 4번 공용블록 중 번호가 더 늦은 공용블록 즉 4번 공용블록의 공용형식 표현에 3번 공용블록의 공용형식 표현을 병합(merge)한다(S4).
도 10은 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ANB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 10을 참조하면, 결합관계 표현부(17)는 도 9에서 공용블록들에 대해서 결합명령어 OR를 적용한 후 이후의 공용블록들에 결합 명령어 ANB를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 ANB를 포함한 공용블록이 있으면 결합 명령어 ANB가 포함된 공용블록 앞에 나온 2개의 공용블록을 차례로 병합(merge)한다(S5).
즉 결합관계 표현부(17)는 결합명령어 ANB를 포함한 5번 공용블록 앞에 나온 2번 공용블록과 4번 공용블록의 공용형식 표현을 5번 공용블록의 공용형식 표현에 병합한다.
이렇게 병합된 공용형식은 'XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]이다.
이후 결합관계 표현부(17)는 2번 공용블록 및 4번 공용블록이 병합된 5번 공용블록에서 결합명령어 ANB를 포함한 공용 오브젝트를 삭제한다(S6).
도 11은 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 대해서 결합 명령어 ORB을 적용하여 공용블록들 간의 결합관계를 공용형식으로 표현하는 과정을 나타낸 도면이다.
도 11을 참조하면, 결합관계 표현부(17)는 도 10에서 공용블록들에 대해서 결합명령어 ANB를 적용한 후 이후의 공용블록들에 결합 명령어 ORB를 포함한 공용 블록이 있는가를 확인하고, 결합 명령어 ORB를 포함한 공용블록이 있으면 결합 명령어 ORB가 포함된 공용블록과 결합명령어 ORB를 포함한 공용블록 앞의 비어있지 않은 2개의 공용블록을 사용하여 공용블록들에 대한 결합관계를 표현한다.
즉 결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 앞의 비어있지 않은 2개의 공용블록 중 첫 번째 공용블록인 1번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S7).
결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 앞의 비어있지 않은 2개의 공용블록 중 첫 번째 공용블록인 5번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S8).
결합관계 표현부(17)는 결합명령어 ORB를 포함한 6번 공용블록 뒤의 공용블록에 결합명령어 OR를 포함한 공용블록 및 결합명령어 ORB를 포함한 공용블록이 존재하는가를 확인하고 존재하지 않을 때만 현재 결합명령어 ORB를 포함한 6번 공용블록의 공용형식의 표현에 "]"를 삽입한다(S9).
결합관계 표현부(17)는 1번 공용블록, 5번 공용블록 및 6번 공용블록 중 가장 번호가 늦은 6번 공용블록에 1번 공용블록과 5번 공용블록을 병합하고 병합된 6번 공용블록에서 결합명령어 ORB를 포함한 공용 오브젝트를 삭제한다(S10).
이렇게 병합된 공용형식은,
'[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]]'이다.
도 12는 도 8에 도시된 공용블록들에 대해서 OR, ANB, ORB를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 12를 참조하면, 도 8에 도시된 공용블록들에 대해서 입력부에 사용되는 결합명령어 OR, ANB 및 ORB를 순차적으로 적용하여, 1번 공용블록 내지 5번 공용블록이 6번 공용블록에 병합되어 있음을 확인할 수 있다.
1번 공용블록 내지 6번 공용블록 간의 결합관계를 표현하는 공용형식이 '[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]]'임을 확인할 수 있다.
도 13은 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 적용한 결과를 나타낸 도면이다.
도 13을 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MPS를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다(S11).
즉 결합관계 표현부(17)는 결합명령어 MPS를 포함한 7번 공용블록의 공용형식 표현의 가장 앞에 "["를 삽입한다,
따라서 7번 공용블록의 공용형식은 '[XIC(M0)ADD(D200,D201,D202)'이 된다.
도 14는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 적용한 결과를 나타낸 도면이다.
도 14를 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MRD를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MRD를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다(S12).
즉 결합관계 표현부(17)는 결합명령어 MRD를 포함한 8번 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입한다.
따라서 8번 공용블록의 공용형식은 ',XIC(M1)OUT(Y0)'이 된다.
도 15는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 적용한 결과를 나타낸 도면이다.
도 15를 참조하면, 결합관계 표현부(17)는 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPP를 포함한 공용블록이 있는가를 확인하고, 결합명령어 MPP를 포함한 공용블록이 있으면 해당 공용블록의 공용형식 표현의 가장 앞에 ","를 삽입하고 해당 공용블록의 공용형식 표현의 가장 뒤에 "]"를 삽입한다(S13).
즉 결합관계 표현부(17)는 결합명령어 MPPfmf 포함한 9번 공용블록의 공용형식 표현의 가장 앞에 ",", 가장 뒤에 "]"를 삽입한다.
따라서 9번 공용블록의 공용형식은 ',mLIMIT(D200,D202,K30,D210)]'이 된다.
도 16은 도 12에 도시된 공용블록들에 대해서 MPS, MRD, MPP를 적용하여 나타나는 공용블록들의 형태를 나타낸 도면이다.
도 16을 참조하면, 도 12에 도시된 공용블록들에 대해서 출력부에 사용되는 결합명령어 MPS, MRD, MPP를 적용하여, 출력부에 해당하는 7번 공용블록 내지 9번 공용블록의 공용형식 표현에 결합관계를 표시하기 위한 기호들이 삽입되어 있음을 확인할 수 있다.
7번 공용블록의 공용형식은 '[XIC(M0)ADD(D200,D201,D202)'이고, 8번 공용블록의 공용형식은 ',XIC(M1)OUT(Y0)'이고, 9번 공용블록의 공용형식은 ',mLIMIT(D200,D202,K30,D210)]'임을 확인할 수 있다.
이렇게 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과가 도 17에 도시되어 있다.
도 17을 참조하면, 도 8에 도시된 공용블록들에 대해서, 입력부에 사용된 결합명령어와 출력부에 사용되는 결합명령어를 적용하여 나타나는 공용블록들을 병합한 결과는,
'[XIC(X1)XIO(X2)XIC(X3),XIO(X1)[EQUAL(D100,D101),DEQUAL(D100,D100)]][XIC(M0)ADD(D200,D201,D202),XIC(M1)OUT(Y0),mLIMIT(D200,D202,K30,D210)]'임을 확인할 수 있다.
도 18은 본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법에 대한 흐름도이다.
본 발명의 실시예에 따른 PLC 제어 프로그램의 공용형식 변환방법은, 도 1에 도시된 공용형식 변환장치(10)에 의해서 수행될 수 있으나, 이에 한정되지 않는다.
도 18을 참조하면, 공용형식 변환장치(10)의 구축부(11)는 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축한다(S20).
공용형식 변환장치(10)의 공용형식 변환부(13)는 임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라(S30), 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인한다(S40).
확인결과, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 공용형식 변환부(13)는 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환한다(S50).
한편 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램에 변환할 수 없는 경우, 공용형식 변환부(13)는 공용형식 변환 불가능 메시지를 발생하여 공용형식 변환 요청자(요청자의 단말기)에 전송한다(S60).
도 19에 도시된 공용형식 변환부(13)에 의해서 수행되는 임의의 텍스트 기반의 PLC 제어프로그램에 대한 공용형식으로의 변환방법은, 도 3에 도시된 바와 같이 공용형식 변환부(13)에 포함된 IL 오브젝트 생성부(14), IL 블록 생성부(15), 공용 블록 변환부(16) 및 결합관계 표현부(17)에 의해서 이루어질 수 있다.
도 19를 참조하면, IL 오브젝트 생성부(14)는 공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성한다(S71).
IL 블록 생성부(15)는 블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성한다. 이는 도 19에서 단계 S72 내지 S76에 해당될 수 있다.
즉 IL 블록 생성부(15)는 IL 오브젝트 리스트에서 순차적으로 IL 오브젝트를 추출하고(S72), RUNG의 마지막 IL 오브젝트가 될 때까지(S73) IL 오브젝트에 블록 명령어에 'LD, AND, OR, ORB, MPP, MRD, MPS'가 포함되어 있는가를 확인하고(S74), 포함되어 있으면 새로운 IL 블록을 생성하고(S75) 포함되어 있지 않으면 가장 최근에 생성된 IL 블록에 IL 오브젝트를 삽입하는 단계(S76)을 반복한다.
공용블록 변환부(16)는 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환한다(S77).
결합관계 표현부(17)는 결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현한다. 이는 도 19에서 단계 S78 내지 단계 S90에 의해서 수행될 수 있다.
즉 결합관계 표현부(17)는 도 8에 도시된 공용블록들을 순차적으로 추출하며(S78), 추출된 공용블록이 마지막 공용블록인가를 확인한다(S79).
추출된 공용블록이 마지막 공용블록이 아니면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 ORB 또는 OR이 포함되어 있는가를 확인한다(S80). 포함되어 있으면 앞선 2개의 공용블록에 "[", ",", "]"을 삽입한다(S81).
추출된 공용블록에 결합명령어 ORB 또는 OR이 포함되어 있지 않으면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 ANB가 포함되어 있는가를 확인한다(S82). 포함되어 있으면 추출된 공용블록의 앞선 2개의 공용블록을 붙인다(S83).
추출된 공용블록에 결합명령어 ANB가 포함되어 있지 않으면 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 MPS가 포함되어 있는가를 확인한다. 포함되어 있으면 해당하는 공용블록의 앞쪽에 "["을 삽입한다(S85).
추출된 공용블록에 결합명령어 MPS가 포함되어 있지 않으면, 결합관계 표현부(17)는 추출된 공용블록에 결합명령어 MRD가 포함되어 있는가를 확인한다(S86). 포함되어 있으면 해당하는 공용블록의 앞쪽에 ","을 삽입한다(S87).
추출된 공용블록에 결합명령어 MRD가 포함되어 있지 않으면, 결합관계 표현부(17)은 추출된 공용블록에 결합명령어 MPP가 포함되어 있는 것으로 판단하여, 해당 공용블록의 앞쪽에 ","을 삽입하고 뒤쪽에 "]"을 삽입한다(S88).
한편, 단계 S79에서 추출된 공용블록이 마지막 공용블록이면, 결합관계 표현부(17)는 공용형식에 결합관계가 표시된 공용블록들을 순차적으로 병합하고(S89), 이렇게 병합된 공용블록들 간의 결합관계가 표시된 공용형식을 출력한다(S90).
이제까지 본 발명에 대하여 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 따라서 본 발명의 범위는 전술한 실시예에 한정되지 않고 특허청구범위에 기재된 내용 및 그와 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
본 발명은 PLC 제어프로그램의 개발분야에 이용될 수 있다.

Claims (16)

  1. 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 공용 명령어 라이브러리 구축부; 와
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 공용형식 변환부를 포함하는, PLC 제어프로그램의 공용형식 변환장치.
  2. 청구항 1에 있어서, 상기 공용명령어 생성 알고리즘은,
    서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계;
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며,
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함하는, PLC 제어프로그램의 공용형식 변환장치.
  3. 청구항 2에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  4. 청구항 2에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  5. 청구항 2에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  6. 청구항 2에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환장치.
  7. 청구항 1에 있어서,
    상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현되며,
    상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작되며,
    상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현되는, PLC 제어프로그램의 공용형식 변환장치.
  8. 청구항 7에 있어서, 상기 공용형식 변환부는,
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 IL 오브젝트 생성부;
    블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 IL 블록 생성부;
    상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 공용블록 변환부; 및
    결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 결합관계 표현부를 포함하여,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 PLC 제어프로그램의 공용형식 변환장치.
  9. 공용명령어 생성알고리즘을 이용하여, 서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들에 대한 공용 명령어를 생성하여 공용 명령어 라이브러리를 구축하는 단계;
    임의의 텍스트 기반의 PLC 제어프로그램의 공용형식으로의 변환 요청에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 확장자 및 데이터 구조를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환 가능한지를 확인하는 단계; 및
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 공용 명령어 라이브러리를 이용하여, 상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계를 포함하는, PLC 제어프로그램의 공용형식 변환방법.
  10. 청구항 9에 있어서, 상기 공용명령어 생성 알고리즘은,
    서로 다른 형식을 가진 텍스트 기반의 PLC 제어프로그램들에 사용되는 명령어들을 표시상 동일 의미를 갖는 동일 표시 명령어 그룹들로 분류하는 제1단계;
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인가를 확인하는 제2단계; 및
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능인 경우, 상기 동일표시 명령어 그룹에 속하면서 동일 기능을 갖는 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어로 생성하며,
    상기 동일표시 명령어 그룹에 속한 명령어들이 모두 동일 기능을 갖지 않은 경우, 상기 동일표시 명령어 그룹에 속하지만 모두 동일 기능을 갖지 않은 명령어들을 동일하게 표시하는 사전상 단어를, 상기 동일 기능을 갖는 않는 명령어들에 대한 공용 명령어로 생성하고, 상기 동일 기능을 갖는 않는 명령어가 사용되는 PLC 제어프로그램에 의해 제어되는 PLC의 제조사 명칭을 상기 동일 기능을 갖는 않은 명령어들에 대한 공용 명령어에 삽입하는 제3단계를 포함하는, PLC 제어프로그램의 공용형식 변환방법.
  11. 청구항 10에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  12. 청구항 10에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  13. 청구항 10에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 파라미터(parameter) 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  14. 청구항 10에 있어서, 상기 제3단계는,
    상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어 생성 시, 상기 동일 기능을 갖지 않는 명령어에 포함된 동작 한정자를 상기 동일 기능을 갖지 않는 명령어들에 대한 공용 명령어에 삽입하는, PLC 제어프로그램의 공용형식 변환방법.
  15. 청구항 9에 있어서,
    상기 공용 형식의 PLC 제어프로그램은, 상기 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 적어도 하나의 RUNG 마다 공용형식으로 표현되며,
    상기 공용형식의 RUNG은, 문자 "N"과 상기 텍스트 기반의 RUNG 내 접점들 중 상기 텍스트 기반의 RUNG의 가장 처음에 위치한 접점의 스텝(step) 인덱스(index)가 결합되어 시작되며,
    상기 공용형식의 RUNG에서는, 상기 텍스트 기반의 RUNG 내의 적어도 하나의 접점이 각각 공용명령어 및 태그(Tag)가 포함된 공용 오브젝트(object)로 표현되고 상기 적어도 하나의 공용 오브젝트가 블록화되어 생성된 적어도 하나의 공용 블록(block) 간의 결합관계가 기호 "[", "]" 및 "," 중 적어도 하나로 표현되는, PLC 제어프로그램의 공용형식 변환방법.
  16. 청구항 15에 있어서,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 단계는,
    공용형식으로 변환 요청된 임의의 텍스트 기반의 PLC 제어프로그램이 공용형식의 PLC 제어프로그램으로 변환가능함에 따라, 상기 임의의 텍스트 기반의 PLC 제어프로그램의 제어 로직을 구성하는 RUNG마다, 로직 순서에 따라 적어도 하나의 접점을 각각 명령어(Command) 및 태그(Tag)를 포함한 IL 오브젝트(Object)로 생성하는 단계;
    블록(Block) 명령어를 이용하여 상기 적어도 하나의 IL 오브젝트를 블록화하여 적어도 하나의 IL 블록을 생성하는 단계;
    상기 공용 명령어 라이브러리를 이용하여, 상기 적어도 하나의 IL 블록 내 적어도 하나의 IL 오브젝트 마다 명령어의 공용명령어로의 변환을 통해 공용 오브젝트를 생성해서, 상기 적어도 하나의 IL 블록을 적어도 하나의 공용 블록으로 변환하는 단계; 및
    결합 명령어를 이용하여, 상기 적어도 하나의 공용 블록 간의 결합관계를 기호 "[", "]" 및 "," 중 적어도 하나로 표현하는 단계를 포함하여,
    상기 임의의 텍스트 기반의 PLC 제어프로그램을 상기 공용형식의 PLC 제어프로그램으로 변환하는 PLC 제어프로그램의 공용형식 변환방법.
PCT/KR2016/009490 2015-12-17 2016-08-26 Plc 제어 프로그램의 공용형식 변환장치 및 방법 WO2017104934A1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/063,383 US20180373218A1 (en) 2015-12-17 2016-08-26 Device and method for common type conversion of plc control program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2015-0181242 2015-12-17
KR1020150181242A KR101627769B1 (ko) 2015-12-17 2015-12-17 Plc 제어 프로그램의 공용형식 변환장치 및 방법

Publications (1)

Publication Number Publication Date
WO2017104934A1 true WO2017104934A1 (ko) 2017-06-22

Family

ID=56193949

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/009490 WO2017104934A1 (ko) 2015-12-17 2016-08-26 Plc 제어 프로그램의 공용형식 변환장치 및 방법

Country Status (3)

Country Link
US (1) US20180373218A1 (ko)
KR (1) KR101627769B1 (ko)
WO (1) WO2017104934A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102004456B1 (ko) * 2016-08-12 2019-07-30 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
WO2018030831A1 (ko) * 2016-08-12 2018-02-15 주식회사 유디엠텍 Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
JP6827340B2 (ja) * 2017-02-17 2021-02-10 三菱重工エンジニアリング株式会社 ソフトウェア試験装置、ソフトウェア試験システム、ソフトウェア試験方法およびプログラム
US11063916B1 (en) * 2017-08-01 2021-07-13 Amazon Technologies, Inc. Facility control service
CN113220336A (zh) * 2020-01-21 2021-08-06 腾讯科技(深圳)有限公司 代码处理方法、装置、介质及电子设备
KR102509859B1 (ko) * 2021-04-21 2023-03-24 주식회사 유디엠텍 Plc 래더정보로부터 공용 명령어정보를 추출하는 장치 및 방법
CN114397856B (zh) * 2022-03-25 2022-07-19 浙江中控研究院有限公司 一种将cfc语言程序应用于龙芯平台的转换方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036228A (ko) * 2002-10-24 2004-04-30 한국전자통신연구원 네트워크에서의 유해 트래픽 탐지 및 대응 시스템 및 방법
KR100904557B1 (ko) * 2008-11-20 2009-06-25 주식회사 이글루시큐리티 이기종 방화벽 통합관리시스템 및 방법
JP2010020635A (ja) * 2008-07-11 2010-01-28 Nippon Reliance Kk プログラミング言語変換装置、変換方法及び変換プログラム
KR20120095513A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템
KR20120095512A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Fbn 기반의 plc 코드를 범용 프로그램 코드로 변환하는 방법 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255875B2 (en) * 2008-09-30 2012-08-28 Rockwell Automation Technologies, Inc. Application builder for industrial automation
KR100931004B1 (ko) 2008-11-27 2009-12-10 (주)미도지리정보 지리정보 및 지형정보에 따른 데이터의 오차 여부를 확인 및 갱신해서 수치지도의 정밀성을 향상시킨 수치지도 제작시스템
US10360316B2 (en) * 2012-12-21 2019-07-23 Rockwell Automation Technologies, Inc. Integration of simulation of a machine for industrial automation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040036228A (ko) * 2002-10-24 2004-04-30 한국전자통신연구원 네트워크에서의 유해 트래픽 탐지 및 대응 시스템 및 방법
JP2010020635A (ja) * 2008-07-11 2010-01-28 Nippon Reliance Kk プログラミング言語変換装置、変換方法及び変換プログラム
KR100904557B1 (ko) * 2008-11-20 2009-06-25 주식회사 이글루시큐리티 이기종 방화벽 통합관리시스템 및 방법
KR20120095513A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Plc 기반 제어 코드를 xml 인터페이스를 이용하여 범용 프로그램 코드로 변환하는 방법 및 프레임워크 시스템
KR20120095512A (ko) * 2011-02-21 2012-08-29 성균관대학교산학협력단 Fbn 기반의 plc 코드를 범용 프로그램 코드로 변환하는 방법 및 시스템

Also Published As

Publication number Publication date
KR101627769B1 (ko) 2016-06-08
US20180373218A1 (en) 2018-12-27

Similar Documents

Publication Publication Date Title
WO2017104934A1 (ko) Plc 제어 프로그램의 공용형식 변환장치 및 방법
WO2015137641A2 (ko) 계층적인 룰 구조를 가지고 있는 비즈니스 룰 관리 시스템 및 그 표현 방법
KR100967761B1 (ko) 프로그래머블 컨트롤러의 주변 장치, 치환 방법 및프로그램
WO2010050675A2 (ko) 의존 문법 구문 트리의 탐색을 통한 자동 관계 트리플 추출 방법
WO2018082484A1 (zh) 一种电子设备的截屏方法、系统及电子设备
WO2017047884A1 (en) Voice recognition server and control method thereof
WO2017111197A1 (ko) 학습 분석에서 빅데이터 시각화 시스템 및 방법
WO2017119538A1 (ko) 그래픽 사용자 인터페이스의 프로토타입 제작 방법 및 그 장치
WO2020032655A1 (en) Method for executing function based on voice and electronic device supporting the same
WO2017148142A1 (zh) 桌面图标文件夹的名称切换方法、装置及电子设备
WO2020233089A1 (zh) 测试用例生成方法、装置、终端及计算机可读存储介质
EP3732559A1 (en) Trustzone graphic rendering method and display device using the same
WO2021070983A1 (ko) Vr 훈련 시스템 및 방법
WO2019135553A1 (en) Electronic device, control method thereof, and computer readable recording medium
WO2021194089A1 (ko) 회로 블록의 그래픽 사용자 인터페이스를 변경하는 방법 및 회로 블록의 그래픽 사용자 인터페이스 변경하는 방법에 따른 각각의 단계를 수행하는 명령어를 포함하는 프로그램이 기록된 컴퓨터 판독 가능 저장 매체
WO2018030831A1 (ko) Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법
WO2018151384A1 (ko) 통신 데이터 모델링 방법
WO2019245247A1 (en) Method for object management using trace identifier, apparatus for the same, computer program for the same, and recording medium storing computer program thereof
WO2023003246A1 (ko) 멀티레벨 룩업테이블을 이용한 함수근사 장치 및 방법
WO2017020620A1 (zh) 标签页同步方法、电子设备及存储介质
WO2021002724A1 (en) Electronic apparatus and control method thereof
WO2017191877A1 (ko) 프로버넌스 관리를 위한 압축 장치 및 방법
WO2019066143A1 (ko) 로봇 제어 장치의 코딩 방법 및 프로그램과 로봇 제어 장치
WO2021085714A1 (ko) 블록체인 관리 시스템 및 그 방법
WO2014073747A1 (ko) 플래시 메모리의 소모 전력 감소 방법 및 그 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16875876

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16875876

Country of ref document: EP

Kind code of ref document: A1