CN107024900B - 最优编译plc命令的方法 - Google Patents
最优编译plc命令的方法 Download PDFInfo
- Publication number
- CN107024900B CN107024900B CN201610916790.7A CN201610916790A CN107024900B CN 107024900 B CN107024900 B CN 107024900B CN 201610916790 A CN201610916790 A CN 201610916790A CN 107024900 B CN107024900 B CN 107024900B
- Authority
- CN
- China
- Prior art keywords
- compilation
- command
- processing scheme
- plc
- processing
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/423—Preprocessors
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4441—Reducing the execution time required by the program code
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13004—Programming the plc
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13119—Compiler
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Programmable Controllers (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
本公开提供了一种编译PLC(可编程逻辑控制器)命令的方法,所述方法包括:确定从针对要在PLC中执行的程序中包含的命令的多个编译处理方案中选择的一个编译处理方案;并且基于所选编译处理方案而执行针对速率或大小优化的命令编译。
Description
技术领域
本公开涉及一种最优编译PLC(可编程逻辑控制器)命令的方法,并且特别地,如下一种最优编译PLC命令的方法,其中,为了改进针对要由PADT(编程和调试工具)编译器编译的PLC命令的编译处理方案,可以通过基于用户的环境而选择速率选项或大小选项而由针对速率或针对大小优化的编译处理方案编译该命令来优化用户程序。
背景技术
在工业现场处的***例如工厂自动化***采用了综合控制装置例如可编程逻辑控制器(PLC)。PLC配备有作为基础单元的通用主处理单元(MPU)。MPU执行将用户使用编程和调试工具(PADT)编写的程序转换为PLC可以识别的代码的编译过程。
因此,为了驱动PLC,应该转换由用户使用PADT编写的程序以使得MPU可以识别它。
PADT是执行编程、编辑和调试功能的软件。PADT执行在由用户创建的项目中编译命令以使得PLC可以识别它并且然后下载到PLC的功能。
此时,取决于采用的方法,该命令可以以多种方法由PDAT编译并可以例如在执行率和可修改性上改变。
同时,命令的处理速率和程序的大小是关于PLC的性能的关键因素。具体地,处理速率越高,生产率可以增加,并且程序的大小越大,更多的输入/输出可以被控制。
在现有技术中,PLC仅支持固定的命令处理速率和固定的程序大小,并且因此不能灵活地修改命令的处理速率和程序的大小来适合于***的特性。
因此,存在以下问题:在实际应用中当命令处理速率很低或程序大小不足时,PLC应该使用其较高的版本来替代或者应该改变***。
发明内容
本公开的一个方面是提供一种最优编译PLC(可编程逻辑控制器)命令的方法,并且特别地,如下一种最优编译PLC命令的方法,其中,为了改进针对要由PADT(编程和调试工具)编译器编译的PLC命令的编译处理方案,可以通过基于用户的环境而选择速率选项或大小选项以使得可以由针对速率优化的编译处理方案或针对大小优化的编译处理方案编译命令来优化用户程序。
本公开的其他对象不限于上面描述的对象并且其他对象和优点可以由以下参照本公开的实施例描述的描述而领会。
根据本发明的一个方面,提供了一种编译PLC(可编程逻辑控制器)命令的方法,该方法包括:确定从针对要在PLC中执行的程序中包含的命令的多个编译处理方案选择的一个编译处理方案;并且基于所选编译处理方案而执行针对速率或大小优化的命令编译。
执行命令编译可以包括:当所述所选编译处理方案被确定为针对所述大小时,基于任意建立的标准确定所述所选编译处理方案是否是简单命令处理;当所述所选编译处理方案被确定为简单编译处理方案时,由直接编译处理方案以汇编语言执行所述命令编译;并且当所述所选编译处理方案被确定为不是简单编译处理方案时,通过参照针对所述速率优化的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用存储的函数来执行所述命令,来以间接编译处理方案执行所述命令编译。
执行命令编译可以包括:当所述所选编译处理方案被确定为针对所述大小时,通过参照针对所述大小优化的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用所述存储的函数以执行所述命令,来以间接编译处理方案执行所述命令编译。
执行命令编译可以包括:当所述所选编译处理方案被确定为默认时,基于任意建立的标准而确定所述所选编译处理方案是否是简单命令处理;当所述所选编译处理方案被确定为简单编译处理方案时,由直接编译处理方案执行所述命令编译;并且当所述所选编译处理方案被确定为不是简单编译处理方案时,通过参照默认下设置的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用所述存储的函数以执行所述命令,来以间接编译处理方案执行所述命令编译。
确定一个编译处理方案可以包括:提供对应于速率的第一选项框以及对应于大小的第二选项框;并且确定如果勾选了所述第一选项框,则所述速率选项被选中;如果勾选了所述第二选项框,则所述大小选项被选中;并且如果没有选项框被勾选,则所述默认被选中。
最优编译PLC命令的方法可以基于所述PLC中的程序大小或剩余数据存储容量而设置为自动选择针对所述命令的多个编译处理方案中的一个编译处理方案。
设置为自动选择一个编译处理方案:可以设置为在正常情况下选择针对所述速率的编译处理方案或在当所述程序大小超过任意参考大小时选择针对所述大小的编译处理方案。
设置为自动选择一个编译处理方案可以设置为在正常情况下选择针对所述速率的编译处理方案或在当所述PLC中的剩余数据存储容量低于任意参考容量时选择针对所述大小的编译处理方案。
根据本发明的另一个方面,本公开可以以下面的方式在PADT(编程和调试工具)编译器中改进编译处理方案:基于用户的环境选择速率选项或大小选项来基于针对速率或大小优化的编译处理方案而编译命令,从而优化用户程序。
根据本发明的又一方面,一种最优编译PLC程序的方法致使用户选择任意编译处理方案以使得该PLC程序可以被灵活地应用于各种***。
例如,当选择速率选项时,可以通过提供针对速率优化的编译处理方案以各种方式来提高其速率。相反,当选择大小选项时,其大小被优化以增加程序存储容量的效率,并且当没有选择选项时,可以使用基本目标代码来执行编译。
附图说明
图1是示出了根据本公开的实施例的最优编译PLC命令的方法中的用户代码的框图。
图2是示出了根据本公开的实施例的最优编译PLC命令的方法中的开发人员的代码的框图。
图3是示出了根据本公开的实施例的最优编译PLC命令的方法中的命令处理的框图。
图4是示出了根据本公开的实施例的最优编译PLC命令的方法的流程图。
图5是示出了根据本公开的实施例的设置编译处理方案以最优编译PLC命令的过程的视图。
图6是示出了根据本公开的实施例的在最优编译PLC命令的方法中的生成目标文件的过程的框图。
图7是示出了根据本公开的实施例的最优编译PLC命令的方法的视图。
图8是示出了根据本公开的实施例的在最优编译PLC命令的方法中的直接编译的视图。
图9是示出了根据本公开的实施例的在最优编译PLC命令的方法中的间接编译的流程图。
图10是示出了根据本公开的另一个实施例的最优编译PLC命令的方法的流程图。
具体实施方式
本公开可以被各种修改并且包括各种实施例。因此,一些具体实施例将借由插图在附图中被举例说明并且在下面的详细描述中被描述。然而,这无意将本公开限制于具体实施例,并且要理解的是,它们涵盖落入本公开的精神和保护范围中所有修改、等同物或改变。
以下,根据本公开的优选实施例将参照附图进行详细地描述。
图1是示出了根据本公开的实施例的最优编译PLC命令的方法中的用户代码的框图。
参照图1,用户通过使用编程和调试工具(PADT)编写程序1。
图2是示出了根据本公开的实施例的最优编译PLC命令的方法中的开发人员的代码的框图。
参照图2,开发人员通过使用源编辑工具来创建命令处理函数代码2。命令处理函数代码2可以是例如void move(void)。由开发人员创建的命令处理函数代码2由MPU专用编译器3编译为二进制格式的目标代码4。MPU专用编译器3可以为C语言或C++编译器。
编译后的二进制格式的目标代码4在其上存储命令处理函数。这些目标代码4被用于基于命令而提取起始地址和大小,使得命令映射表被创建。
图3是示出了根据本公开的实施例的最优编译PLC命令的方法中的命令处理的框图。
参照图3,示出了当用户已在PADT中编写MOVE命令时执行的过程。PADT编译器5可以基本上将由用户编写的程序转换为使能PLC运行的格式。为了执行该命令,应该基于该命令调用处理函数。
当用户已通过PADT编写了MOVE命令6时,在处理程序7期间可以调用MOVE命令处理函数(8)。
如果调用了MOVE命令,则参照命令映射表9识别存储在二进制文件10中的MOVE命令处理函数的地址(11),并且然后调用存储在二进制文件10中的MOVE命令处理函数代码(12)。随后,将MOVE命令处理函数代码***到编译区域中(13)。当如上面描述的编译处理完成时,生成PLC驱动文件14。
图4是示出了根据本公开的实施例的最优编译PLC命令的方法的流程图。图5是示出了根据本公开的实施例的设置编译处理方案以最优编译PLC命令的过程的视图。
参照图4,通过使用PADT的阶梯程序创建要在PLC中执行的程序代码(S100)。
此后,设置针对要在PLC中执行的程序中包括的命令的多个编译处理方案中的一个编译处理方案(S200)。
例如,当前公开可以致使用户勾选或释放速率选项和大小选项以使得用于最优编译处理的方案可以被设置。此时,如果没有选项被选中,则可以设置的是,利用基本目标代码的编译被执行。同时,如果大小选项被选中,则可以设置的是,针对大小优化的编译被执行。
参考图5,示出了选择速率选项或大小选项的选择框10。选择框10可以包括对应于速率选项的第一选择框11和对应于大小选项的第二选择框12。
如果第一框11已被勾选,则确定出该速率选项被选中。相反,如果第二选择框12已被勾选,则确定出大小选项被选中。然而,如果在第一选择框11和第二选择框12上不存在任意勾选,则确定出默认选项被选中。
根据针对在要在PLC中执行的程序中包含的命令的多个编译处理方案中的一个所选编译处理方案来执行命令编译,并且因此生成PLC驱动文件(S300)。
为了这样做,确定出已从针对要在PLC中执行的程序中包含的命令的多个编译处理方案选择了哪个编译处理方案(S200)。
参照图6,当所选编译处理方案被确定为针对速率时,MPU专用编译器以针对速率优化的二进制文件的格式生成目标代码。
当所选编译处理方案被确定为针对大小时,MPU专用编译器以针对大小优化的二进制文件的格式生成目标代码。
当所选编译处理方案被确定为默认时,MPU专用编译器以默认下设置的二进制格式生成目标代码。
此后,当处理命令时,PADT编译器将由用户编写的程序转换为使能PLC运行的格式。
即,当所选编译处理方案为针对速率时,PADT编译器使用针对速率优化的目标代码来执行针对速率优化的命令编译,从而生成PLC驱动文件。同时,当所选编译处理方案为针对大小时,PADT编译器使用针对大小优化的目标代码来执行针对大小优化的命令编译,从而生成PLC驱动文件。
进一步地,当所选编译处理方案为默认时,PADT编译器使用默认下设置的目标代码来执行命令编译,从而生成PLC驱动文件。
如上面描述而生成的PLC驱动文件被下载到PLC(S400)。
图7是示出了根据本公开的实施例的最优编译PLC命令的方法的视图。
参照图7,确定出针对要在PLC中执行的程序中包含的命令的多个编译处理方案选择了哪个编译处理方案(S301)。
当在S301中所选编译处理方案被确定为针对速率时,基于任意建立的标准确定出所选编译处理方案是否是简单命令处理(S302)。关于其是否是简单命令处理的标准为命令是否可以被直接编译。如果该命令可以被直接编译,则其符合简单命令。
像这样,当速率选项被选中时,PADT编译器检查使用中的命令来确定该使用中的命令是否是一个可以由直接编译处理方案编译的命令。
例如,如果一个命令的代码非常长并且复杂,则直接编译不能被执行,这是因为其可能在CPU中被写为C代码。因此,当确定出该命令可以被直接编译时,PADT编译器在针对速率优化的汇编语言中直接执行编译。然而,当确定出该命令不能被直接编译时,PADT编译器遵循与速率选项有关的被写为C代码的命令执行例程。
在此,如图8中示出的,直接编译是PADT编译器通过其执行并存储命令的任意编译处理方案。当用户编写任意命令时,PADT编译器在编译时允许用于处理被存储在PLC编译区域上的命令的所有代码。然后,如果存在在程序处理中使用的任意命令,则可以在不需要调用任意单独函数的情况下执行命令,这是因为针对该命令的执行代码已被存储在编译区域上。
同时,针对间接编译,当用户由如图9中示出的阶梯程序编写任意指令时,PADT编译器在处理编译的同时检查命令。PADT编译器参照存储在PADT上的命令映射表识别存储在二进制文件中的命令处理函数的地址,并且然后调用该命令处理函数。然后,被需要执行该命令的命令处理函数被复制到PLC的编译区域中的结束部分。因此,当驱动该PLC时,可以通过识别命令处理函数的地址并调用存储的函数来进行命令处理。
当在S302中所选编译处理方案被确定为简单命令处理时,命令编译由直接编译处理方案在汇编语言中执行(S303)。
同时,当在S302中所选编译处理方案被确定为不是简单命令处理时,PADT编译器参照针对速率优化的命令映射表识别存储在二进制文件中的命令处理函数的地址(S304)。随后,基于命令处理函数的地址而调用命令处理函数(S305),需要执行该命令的命令处理函数被复制到编译区域以使得命令编译由间接编译处理方案执行(S306)。因此,当驱动该PLC时,可以通过识别命令处理函数的地址并调用存储的函数来执行该命令。
同时,当在S301中所选编译处理方案被确定为针对大小时,PADT编译器参照针对大小优化的命令映射表识别存储在二进制文件中的命令处理函数的地址(S307)。随后,基于命令处理函数的地址而调用命令处理函数(S308),需要执行该命令的函数被复制到编译区域以使得命令编译由间接编译处理方案执行(S309)。因此,当驱动该PLC时,可以通过识别命令处理函数PLC的地址并调用存储的函数来执行该命令。
像这样,如果所选编译处理方案为针对大小,则PADT编译器对使用中的命令执行间接编译。间接编译处理方案对减少整体程序大小是有用的,这是因为其会相对于相同命令仅复制一次执行例程。进一步地,当处理间接编译时可以关联于大小选项编译在C代码中创建的命令执行例程,从而减少了程序大小。
同时,当在S301中所选编译处理方案被确定为默认时,基于任意建立的标准确定出所选编译处理方案是否是简单命令处理(S310)。
当在S310中所选编译处理方案被确定为简单命令处理时,命令编译由直接编译处理方案执行(S311)。
然而,当在S301中所选编译处理方案被确定为不是简单命令处理时,识别出参照默认下设置的命令映射表以二进制文件存储的命令处理函数的地址(S312)。随后,基于命令处理函数的地址而调用命令处理函数(S313),需要执行该命令的函数被复制到编译区域以使得命令编译由间接编译处理方案执行(S314)。因此,当驱动该PLC时,可以通过识别命令处理函数的地址并调用存储的函数来执行该命令。
像这样,用户可以选择针对适合于***环境的命令的编译处理方案。如果速率选项被选中,则编译该PLC程序来优化处理速率并且因此以相对于现有技术的32%的增加速率使能该控制。此外,如果大小选项被选中,则该程序可以以其大小相对于现有程序大小增加达至30%而被使用。因此,采用本公开的PLC以其中它可以覆盖的其处理速率和程序大小而变得灵活,使得其可以被应用于各种***。
根据本公开,一种最优编译PLC程序的方法致使用户选择任意编译处理方案,使得该PLC程序可以被灵活地应用于各种***。
图10是示出了根据本公开的另一个实施例的最优编译PLC命令的方法的流程图。
参照图10,要在PLC中执行的程序代码通过使用PADT的阶梯程序而编写(S510)。
基于PLC中的程序大小或剩余数据存储容量,程序被设置为自动选择针对要在PLC中执行的程序中包含的命令的多个编译处理方案中的一个编译处理方案(S520)。
例如,为了自动选择一个编译处理方案,可以设置该程序以使得在正常情况下选择针对速率的编译处理方案而当程序大小超过任意参考大小时选择针对大小的编译处理方案。
另一个示例,为了自动选择一个编译处理方案,可以设置该程序以使得在正常情况下选择针对速率的编译处理方案而当PLC中的剩余数据存储容量低于任意参考容量时选择针对大小的编译处理方案。
根据自动地从针对要在PLC中执行的程序中包含的命令的多个编译处理方案所选的一个编译处理方案来执行命令编译,并且因此生成PLC驱动文件(S530)。
为了这样做,确定出从针对要在PLC中执行的程序中包含的命令的多个编译处理方案选择出了哪个编译处理方案。
当所选编译处理方案被确定为针对速率时,执行针对速率优化的命令编译。当所选编译处理方案确定为针对大小时,执行针对大小优化的命令编译。
当所选编译处理方案被确定为默认时,执行默认下设置的命令编译来生成目标代码,并且因此生成PLC驱动文件。生成的PLC驱动文件被下载到PLC(S540)。
虽然上面已经描述了根据本公开的实施例,但是它们只是示范性的,并且本领域中的那些技术人员将理解的是,由此得出的各种修改和改变可以在落入本公开的保护范围中的等效范围内实现。因此,本公开的真实技术范围应由附属的权利要求限定。
Claims (7)
1.一种编译可编程逻辑控制器PLC命令的方法,所述方法包括:
基于用户的环境而选择速率选项或大小选项或默认选项;
确定从针对要在PLC中执行的程序中包含的命令的多个编译处理方案中选择的针对速率优化或大小优化或默认的一个编译处理方案;并且
基于所选编译处理方案而执行针对速率优化或大小优化或默认的命令编译,
执行命令编译包括:
当所选编译处理方案被确定为针对所述速率或者默认时,基于其是否可以被直接编译来确定所述所选编译处理方案是否是简单命令处理;
当所选编译处理方案被确定为简单编译处理方案时,由直接编译处理方案以汇编语言执行所述命令编译;
当所选编译处理方案被确定为针对所述大小时,不基于其是否可以被直接编译来确定所述所选编译处理方案是否是简单命令处理,而是通过参照针对所述大小优化的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用所述存储的函数来执行所述命令,来以间接编译处理方案执行所述命令编译。
2.根据权利要求1所述的方法,其中执行命令编译还包括:
当所述所选编译处理方案被确定为针对所述速率且所述所选编译处理方案被确定为不是简单编译处理方案时,通过参照针对所述速率优化的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用存储的函数以执行所述命令,来以间接编译处理方案执行所述命令编译。
3.根据权利要求1所述的方法,其中执行命令编译还包括:
当所述所选编译处理方案被确定为默认且所述所选编译处理方案被确定为不是简单编译处理方案时,通过参照默认下设置的命令映射表识别以二进制文件存储的命令处理函数的地址,然后调用所述命令处理函数,然后将被需要执行所述命令的命令处理函数复制到编译区域以在当驱动所述PLC时识别所述命令处理函数的地址,并且然后调用所述存储的函数以执行所述命令,来以间接编译处理方案执行所述命令编译。
4.根据权利要求1所述的方法,其中确定一个编译处理方案包括:
提供对应于速率的第一选项框以及对应于大小的第二选项框;并且
确定如果勾选了所述第一选项框,则所述速率选项被选中;如果勾选了所述第二选项框,则所述大小选项被选中;并且如果没有选项框被勾选,则所述默认被选中。
5.根据权利要求1所述的方法,进一步包括:
基于所述PLC中的程序大小或剩余数据存储容量而设置为自动选择针对所述命令的多个编译处理方案中的一个编译处理方案。
6.根据权利要求5所述的方法,其中,设置为自动选择一个编译处理方案包括:
设置为在正常情况下选择针对所述速率的编译处理方案或在当所述程序大小超过任意参考大小时选择针对所述大小的编译处理方案。
7.根据权利要求5所述的方法,其中,设置为自动选择一个编译处理方案包括:
设置为在正常情况下选择针对所述速率的编译处理方案或在当所述PLC中的剩余数据存储容量低于任意参考容量时选择针对所述大小的编译处理方案。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150146850A KR102063966B1 (ko) | 2015-10-21 | 2015-10-21 | Plc 명령어 컴파일 최적화 방법 |
KR10-2015-0146850 | 2015-10-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107024900A CN107024900A (zh) | 2017-08-08 |
CN107024900B true CN107024900B (zh) | 2020-06-19 |
Family
ID=57113187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610916790.7A Expired - Fee Related CN107024900B (zh) | 2015-10-21 | 2016-10-20 | 最优编译plc命令的方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10445074B2 (zh) |
EP (1) | EP3159792B1 (zh) |
JP (1) | JP2017079069A (zh) |
KR (1) | KR102063966B1 (zh) |
CN (1) | CN107024900B (zh) |
ES (1) | ES2772675T3 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874470B (zh) * | 2017-05-11 | 2023-04-07 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及服务器、计算机存储介质 |
CN108932125B (zh) * | 2018-07-19 | 2021-06-22 | 闫伟 | 可编程逻辑控制器的控制方法 |
CN111026402B (zh) * | 2019-12-09 | 2023-05-12 | 贵阳永青仪电科技有限公司 | 一种编译型plc代码执行效率优选方法 |
KR20210101770A (ko) * | 2020-02-11 | 2021-08-19 | 엘에스일렉트릭(주) | 복수 프로그래밍 언어 지원을 위한 plc 제어방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334216A (ja) * | 1994-06-14 | 1995-12-22 | Fuji Electric Co Ltd | プログラミング装置 |
CN102855137A (zh) * | 2011-06-28 | 2013-01-02 | 西门子公司 | 用于自动化部件的编程的方法和程序设计*** |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5287548A (en) * | 1988-02-29 | 1994-02-15 | Allen-Bradley Company, Inc. | Programmable controller having a stored program with both machine language instructions and source code data |
JPH02133825A (ja) | 1988-11-15 | 1990-05-23 | Nec Corp | コンパイル方式 |
US5177420A (en) * | 1989-05-01 | 1993-01-05 | Honda Giken Kogyo Kabushiki Kaisha | Method of and apparatus for generating control program |
US5285376A (en) * | 1991-10-24 | 1994-02-08 | Allen-Bradley Company, Inc. | Fuzzy logic ladder diagram program for a machine or process controller |
DE19712946A1 (de) * | 1996-05-30 | 1997-12-04 | Ibm | Methode zum Generieren einer Implementierung wiederverwendbarer Teile von Containern eines Workflow-Prozessmodells |
US5940622A (en) * | 1996-12-11 | 1999-08-17 | Ncr Corporation | Systems and methods for code replicating for optimized execution time |
JPH1195813A (ja) | 1997-09-19 | 1999-04-09 | Fuji Electric Co Ltd | プログラマブルコントローラ |
JP4027482B2 (ja) * | 1997-12-24 | 2007-12-26 | 富士通株式会社 | 暗号復元を行う翻訳装置およびその方法 |
JP3284956B2 (ja) * | 1998-01-26 | 2002-05-27 | 日本電気株式会社 | プログラム変換方法、プログラム変換装置及びプログラム変換プログラムを記憶した記憶媒体 |
KR19990080902A (ko) | 1998-04-23 | 1999-11-15 | 박준일 | 피엘시용 제어코드 프로그래밍 시스템 |
US6922829B2 (en) * | 1999-10-12 | 2005-07-26 | Texas Instruments Incorporated | Method of generating profile-optimized code |
DE10195965T1 (de) * | 2000-03-24 | 2003-04-03 | Siemens Energy & Automat | Speicherung und Übertragung einer grafischen Progammiersprache für ein industrielles Automationssystem |
US7412369B1 (en) * | 2000-06-09 | 2008-08-12 | Stmicroelectronics, Inc. | System and method for designing and optimizing the memory of an embedded processing system |
US6986130B1 (en) * | 2000-07-28 | 2006-01-10 | Sun Microsystems, Inc. | Methods and apparatus for compiling computer programs using partial function inlining |
JP2003131889A (ja) * | 2001-10-25 | 2003-05-09 | Hitachi Ltd | オブジェクトプログラム生成方法 |
JP3801545B2 (ja) * | 2002-08-02 | 2006-07-26 | 松下電器産業株式会社 | コンパイラ用プログラム、コンパイラ装置及びコンパイル方法 |
JP4934267B2 (ja) * | 2003-10-17 | 2012-05-16 | パナソニック株式会社 | コンパイラ装置 |
JP4366575B2 (ja) | 2003-11-05 | 2009-11-18 | オムロン株式会社 | ツール |
US7710988B1 (en) * | 2005-03-11 | 2010-05-04 | Xambala Corporation | Method and system for non-deterministic finite automaton filtering |
US20060236310A1 (en) * | 2005-04-19 | 2006-10-19 | Domeika Max J | Methods and apparatus to iteratively compile software to meet user-defined criteria |
JP4528284B2 (ja) | 2006-06-13 | 2010-08-18 | 株式会社日立産機システム | プログラマブルコントローラ |
US20080005473A1 (en) * | 2006-06-30 | 2008-01-03 | Tong Chen | Compiler assisted re-configurable software implemented cache |
US8087012B2 (en) * | 2007-08-21 | 2011-12-27 | International Business Machines Corporation | Eliminating maximum/minimum operations in loop bounds |
JP5051377B2 (ja) * | 2008-03-15 | 2012-10-17 | オムロン株式会社 | プログラム開発支援装置の動作仕様管理方法 |
JP5025562B2 (ja) | 2008-05-26 | 2012-09-12 | 三菱電機株式会社 | プログラマブルコントローラシステム |
US20100125838A1 (en) * | 2008-11-19 | 2010-05-20 | Nokia Corporation | Method and Apparatus for Optimizing a Program |
KR20140053757A (ko) * | 2010-03-31 | 2014-05-08 | 어데토 캐나다 코포레이션 | 소프트웨어 라이브러리에서의 다양한 변형을 통한 압축과 보호를 위한 시스템과 방법 |
US8762964B2 (en) * | 2010-12-17 | 2014-06-24 | Cisco Technology, Inc. | Optimizing symbol manipulation language-based executable applications for distributed execution |
CN102566483A (zh) * | 2010-12-21 | 2012-07-11 | 鸿富锦精密工业(深圳)有限公司 | 可编程逻辑控制*** |
US8504176B2 (en) * | 2011-03-15 | 2013-08-06 | Omron Corporation | CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC |
CN102393670A (zh) * | 2011-10-24 | 2012-03-28 | 杭州电子科技大学 | 一种梯形图内嵌高级语言进行混合编程的实现方法 |
US9134980B1 (en) * | 2012-05-01 | 2015-09-15 | Amazon Technologies, Inc. | Compiler optimization in a computing environment |
KR20130132340A (ko) | 2012-05-25 | 2013-12-04 | 김민규 | 마이콤용 프로그래밍 장치 |
CN102750177B (zh) * | 2012-06-19 | 2014-12-31 | 武汉凌控自动化技术有限公司 | 一种使用编译器的脚本实现方法 |
KR101398718B1 (ko) * | 2012-06-29 | 2014-05-27 | 엘에스산전 주식회사 | 명령어 처리 장치 및 방법 |
TWI489232B (zh) * | 2012-11-14 | 2015-06-21 | Inst Information Industry | 遠端監控系統及方法及其記錄媒體 |
CN103914018A (zh) | 2012-12-31 | 2014-07-09 | 施耐德电器工业公司 | 可编程控制器的编程辅助***及方法 |
JP2015125713A (ja) | 2013-12-27 | 2015-07-06 | 富士電機株式会社 | プログラマブルコントローラ・システム、その支援装置、プログラマブルコントローラ、プログラム |
US9286089B2 (en) * | 2014-01-24 | 2016-03-15 | International Business Machines Corporation | Just-in time expensive compilation hints |
JP2015194881A (ja) * | 2014-03-31 | 2015-11-05 | 富士通株式会社 | コンパイル装置、コンパイラプログラム、コンパイル方法 |
US9626155B2 (en) * | 2015-04-28 | 2017-04-18 | Qualcomm Incorporated | Determining recommended optimization strategies for software development |
JP6572610B2 (ja) * | 2015-04-28 | 2019-09-11 | 富士通株式会社 | 情報処理装置、コンパイル方法およびコンパイルプログラム |
US10409570B2 (en) * | 2016-10-19 | 2019-09-10 | Nxp Usa, Inc. | Feedback directed program stack optimization |
-
2015
- 2015-10-21 KR KR1020150146850A patent/KR102063966B1/ko active IP Right Grant
-
2016
- 2016-10-07 ES ES16192816T patent/ES2772675T3/es active Active
- 2016-10-07 EP EP16192816.3A patent/EP3159792B1/en active Active
- 2016-10-20 CN CN201610916790.7A patent/CN107024900B/zh not_active Expired - Fee Related
- 2016-10-21 JP JP2016206507A patent/JP2017079069A/ja active Pending
- 2016-10-21 US US15/331,523 patent/US10445074B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07334216A (ja) * | 1994-06-14 | 1995-12-22 | Fuji Electric Co Ltd | プログラミング装置 |
CN102855137A (zh) * | 2011-06-28 | 2013-01-02 | 西门子公司 | 用于自动化部件的编程的方法和程序设计*** |
Also Published As
Publication number | Publication date |
---|---|
EP3159792A1 (en) | 2017-04-26 |
EP3159792B1 (en) | 2019-11-27 |
US10445074B2 (en) | 2019-10-15 |
KR102063966B1 (ko) | 2020-01-09 |
CN107024900A (zh) | 2017-08-08 |
US20170115972A1 (en) | 2017-04-27 |
ES2772675T3 (es) | 2020-07-08 |
JP2017079069A (ja) | 2017-04-27 |
KR20170046864A (ko) | 2017-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107024900B (zh) | 最优编译plc命令的方法 | |
CN103814333B (zh) | 用于对可编程控制装置编程和配置的方法和设备 | |
US8464236B2 (en) | Data consistency in data processing systems | |
JP2008135049A (ja) | 産業オートメーション用のcilコード・プログラムのオンライン修正 | |
US20200142376A1 (en) | Engineering apparatus, control method of engineering apparatus, and program | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
US10747507B2 (en) | Development support device, development support method, and non-transitory recording medium | |
US20190196798A1 (en) | Executable program creation device, executable program creation method, and executable program creation program | |
US20190012168A1 (en) | Program generating apparatus | |
JP2009157533A (ja) | プログラマブルコントローラシステム | |
CN103744331A (zh) | 教育机器人、其控制器及控制器的编程方法 | |
JP2015215865A (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ | |
KR102091134B1 (ko) | Plc의 브랜치 명령어 처리 방법 | |
US11169510B2 (en) | Engineering system and method for planning an automation system | |
KR101398718B1 (ko) | 명령어 처리 장치 및 방법 | |
JP4366575B2 (ja) | ツール | |
JP2009086898A (ja) | プログラム可能な論理制御装置用マシーンコード・プログラムのコンパイル法 | |
US20160162287A1 (en) | Automatic generation of certificate of origin (coo) for software systems | |
US8832670B2 (en) | Programmable controller and programming tool for communication with legacy equipment | |
JP2009009444A (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP5141095B2 (ja) | プラントコントローラシステム | |
JP2008243019A (ja) | ソースコード変換装置及びソースコード変換方法 | |
KR102268795B1 (ko) | 프로그램 언어와 제조사에서 정의한 언어의 혼용을 위한 메모리 매핑 방법 | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP6295914B2 (ja) | プログラマブルコントローラシステム、その支援装置、プログラマブルコントローラ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200619 Termination date: 20211020 |