CN104977892A - 可编程逻辑控制器用程序的创建支持装置 - Google Patents
可编程逻辑控制器用程序的创建支持装置 Download PDFInfo
- Publication number
- CN104977892A CN104977892A CN201510165723.1A CN201510165723A CN104977892A CN 104977892 A CN104977892 A CN 104977892A CN 201510165723 A CN201510165723 A CN 201510165723A CN 104977892 A CN104977892 A CN 104977892A
- Authority
- CN
- China
- Prior art keywords
- intermediate code
- execute file
- converter
- program
- language
- 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.)
- Granted
Links
Classifications
-
- 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
- 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/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- 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/052—Linking several PLC's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Programmable Controllers (AREA)
Abstract
本发明提供对具有被二重化的CPU的PLC,能够容易地创建用于使各个CPU动作的独立的执行文件,能够更加可靠地防止由转换器软件的故障引起的PLC的紧急停止的PLC用程序的创建支持装置、以及PLC用程序的创建支持方法。根据原始程序生成第一、第二中间代码,根据第一中间代码生成反向转换程序,根据反向转换程序生成再次转换第一中间代码、再次转换第二中间代码,在这些中间代码与那些再次转换中间代码的比较结果一致的情况下,根据再次转换第一中间代码生成第一执行文件,根据再次转换第二中间代码生成第二执行文件,并将这些执行文件转送至PLC。
Description
本申请主张于2014年4月10日提出的日本专利申请2014-081034号的优先权,并在此引用其全部内容。
技术领域
本发明涉及可编程逻辑控制器用程序的创建支持装置、以及可编程逻辑控制器用程序的创建支持方法。
背景技术
可编程逻辑控制器(Programmable Logic Controller,以下,记载为PLC)被使用于工厂的自动机械的控制等。PLC是小型的计算机,具备执行程序的中央处理装置(以下,记载为CPU),在创建程序时利用以梯形电路的形式描述顺序控制的梯形图语言,能够适当地被改写为符合用途的顺序程序来利用。而且向PLC输入来自各种输入设备(开关、传感器等)的与导通状态相关的信号(开启或者关闭的信息),PLC使用将各种输入设备组合成所希望的方式(以串联或者并联的方式连接)的顺序程序,来控制(输出开启或者关闭信号等)输出设备(继电器、马达等)。
在PLC中还被称为安全PLC的PLC对CPU以及ROM进行二重化,分别向2个ROM搭载由相同的梯形图语言程序创建的独立的执行文件(以PLC能够执行的机器语言编写的代码,换句话说程序)。而且,在被二重化的CPU的输出一致的情况下,使用其输出来控制马达、继电器等输出设备。即,利用独立的CPU执行由相同的梯形图语言程序创建的不同的2个执行文件并对它们的输出进行核对,从而将从梯形图语言程序到执行文件的转换软件等出现意外故障的情况下的紧急停止防止于未然。
以往,在创建独立的执行文件时,使用中间代码转换器(转换器软件),从梯形图语言程序转换为中间代码(用中间语言描述的程序,),设计者一句一句地确认该转换后的中间代码来确认有无转换的故障。而且,将该中间代码,利用第一执行文件转换器(转换器软件)转换为第一执行文件,并利用第二执行文件转换器转换为第二执行文件,并将第一执行文件搭载于第一CPU,将第二执行文件搭载于第二CPU。
另外在日本特开2006-235660号公报中,公开了不向PLC转送执行文件而是转送数值数据程序,且PLC具备按照每个指令解释并执行数值数据程序的解释程序的控制系统。在该结构中,PLC并不是直接执行数值数据程序,而是执行通过解释程序解释(翻译为机器语言)后的内容。
另外在日本特开平9-212212号公报中,公开了如下的核对方法,即,例如在创建对设备1E的标准梯形顺序1和设备2E的标准梯形顺序2进行合成而成的梯形顺序3的情况下,从梯形顺序3中取出顺序A和顺序B,按照每个模块展开为助记符(将机器语言翻译为人容易理解/描述的英语单词、符号的组合),对展开的顺序进行逻辑化并按地址顺序再次排列比较,从而能够识别逻辑的矛盾、逻辑的重复的顺序电路。
在从梯形图语言程序转换为中间代码,根据该转换后的中间代码来创建第一执行文件和第二执行文件的现有方法中,设计者一句一句地确认从梯形图语言程序转换成的中间代码的作业非常麻烦并且浪费时间,所以并不优选。另外,虽然准备两种执行文件转换器,根据一个中间代码来创建独立的执行文件,但从梯形图语言程序向中间代码的转换是1个类型。因此,认为在从该梯形图语言程序转换为中间代码的中间代码转换器(转换器软件)出现故障的情况下,存在即使设计者进行一句一句的确认也不能发现的可能性,可能发生由执行文件的错误引起的PLC的紧急停止,所以不优选。
另外,相对于上述的方法,也考虑准备两种中间代码转换器(转换器软件),根据一个梯形图语言程序创建独立的中间代码,并根据这两种中间代码,使用两种执行文件转换器(转换器软件),创建独立的执行文件的方法,但在为了一系列的程序的维护(maintenance),需要保存梯形图语言程序,需要大量的存储容量这一点,不优选(梯形图语言程序与中间代码、执行文件相比较尺寸非常大)。另外,也可以代替保存梯形图语言程序而保存两种中间代码,但在保存两种中间代码的量,(与保存一种中间代码的情况相比)需要额外的存储容量这一点,不优选。
另外在日本特开2006-235660号公报所记载的控制系统中,以搭载有解释程序的特殊的PLC为对象,相对于搭载有机器语言的执行文件且以机器语言直接动作的PLC动作较慢。另外,在对被二重化后的安全PLC的各个CPU搭载了解释程序、以及不同的值数据程序的情况下,考虑从各个数值数据程序的解释到执行的动作时间的差可能增大这一点,不优选。
另外日本特开平9-212212号公报所记载的顺序电路的核对方法,并不能作为对被二重化后的安全PLC的各个CPU分别搭载独立的执行文件的方法来应用。
发明内容
本发明的目的之一在于提供,对具有被二重化后的CPU的PLC,能够不麻烦地创建用于使各个CPU动作的独立的执行文件,能够更加可靠地防止由转换器软件的故障引起的PLC的紧急停止,能够进一步减少用于程序的维护的存储容量的可编程逻辑控制器用程序的创建支持装置、以及可编程逻辑控制器用程序的创建支持方法。
本发明的一个方式的可编程逻辑控制器用程序的创建支持装置,具有:
第一中间代码转换器以及第二中间代码转换器,它们彼此不同,根据用第一规定语言描述的程序生成用第二规定语言描述的中间代码;
反向转换器,其生成从用上述第二规定语言描述的中间代码反向转换成的用上述第一规定语言描述的程序;
第一执行文件转换器以及第二执行文件转换器,它们彼此不同,根据用上述第二规定语言描述的中间代码生成能够由可编程逻辑控制器执行的执行文件;
中间代码生成装置,其使用上述第一中间代码转换器根据用上述第一规定语言描述的原始程序生成第一中间代码,并且使用上述第二中间代码转换器根据上述第一中间代码的生成所使用的上述原始程序生成与上述第一中间代码不同的第二中间代码;
反向转换程序生成装置,其使用上述反向转换器生成从上述第一中间代码反向转换成的反向转换程序;
再次转换中间代码生成装置,其使用上述第一中间代码转换器根据上述反向转换程序生成再次转换第一中间代码,并且使用上述第二中间代码转换器根据上述反向转换程序生成与上述再次转换第一中间代码不同的再次转换第二中间代码;
中间代码核对装置,其对上述第一中间代码和上述再次转换第一中间代码进行比较,或者对上述第二中间代码和上述再次转换第二中间代码进行比较;
执行文件生成装置,其在上述中间代码核对装置的比较结果一致的情况下,使用上述第一执行文件转换器根据上述再次转换第一中间代码生成第一执行文件,使用上述第二执行文件转换器根据上述再次转换第二中间代码生成与上述第一执行文件不同的第二执行文件;以及
文件转送装置,其在具有由第一控制装置以及第一存储装置、和第二控制装置以及第二存储装置构成的被二重化的控制装置以及存储装置的可编程逻辑控制器中,向上述第一控制装置转送上述第一执行文件并使上述第一存储装置存储上述第一执行文件,向上述第二控制装置转送上述第二执行文件并使上述第二存储装置存储上述第二执行文件。
根据上述方式,在根据使用反向转换器生成的用第一规定语言描述的反向转换程序,利用不同的2个类型的中间代码转换器(转换器软件)生成2个类型的中间代码后,利用不同的2个类型的执行文件转换器(转换器软件)生成2个类型的执行文件。由此,在任意一个转换器软件出现了故障的情况下,都能够适当地使PLC的输出停止,所以能够更加可靠地防止PLC的紧急停止。另外,在中间代码核对步骤中,即使在反向转换器(转换器软件)出现了故障的情况下,也能够发现故障。另外,能够排除设计者一句一句地确认中间代码的作业,大幅度地缩短时间和精力。
本发明的其他方式,在上述方式的可编程逻辑控制器用程序的创建支持装置中,
使用上述中间代码核对装置,对上述第一中间代码与上述再次转换第一中间代码进行比较,并且对上述第二中间代码与上述再次转换第二中间代码进行比较,
使用上述执行文件生成装置在上述中间代码核对装置的双方的比较结果分别一致的情况下,使用上述第一执行文件转换器根据上述再次转换第一中间代码生成上述第一执行文件,使用上述第二执行文件转换器根据上述再次转换第二中间代码生成与上述第一执行文件不同的上述第二执行文件。
根据上述方式,除了第一中间代码与再次转换第一中间代码的核对之外,也进行第二中间代码与再次转换第二中间代码的核对,从而能够更加可靠地发现反向转换器(转换器软件)的故障。
本发明的进一步的其他方式,在上述方式的可编程逻辑控制器用程序的创建支持装置中,
使用上述文件转送装置,进一步向上述第一控制装置转送上述第一中间代码并使上述第一存储装置存储上述第一中间代码。
根据上述方式,仅保存反向转换程序的生成所使用的第一中间代码用于维护,从而能够容易地生成反向转换程序、再次转换第一中间代码、再次转换第二中间代码、第一执行文件、第二执行文件。因此,无需保存容量较大的原始程序,也无需保存2个种类的中间代码程序。因此,能够进一步减少保存用于维护的程序时的存储容量。
本发明的进一步的其他方式,在上述方式的可编程逻辑控制器用程序的创建支持装置中,
上述第一规定语言是梯形图语言,上述第二规定语言是中间语言,其中,
上述中间语言是将梯形图语言转换为文本式的描述的语言,即使执行上述执行文件的控制装置是不同的种类,也能够应用相同的中间语言。
根据上述方式,设计者利用梯形图语言创建原始程序即可,所以能够相对容易地设计PLC用程序。另外用人能够理解的中间语言来描述中间代码,从而即使在需要设计者确认中间代码的情况下也能够适当地确认,并且向执行文件形式不同的各种CPU的转用变得容易,所以非常便利。
作为本发明的进一步的其他方式的可编程逻辑控制器用程序的创建支持方法,使用具备:
第一中间代码转换器以及第二中间代码转换器,它们彼此不同,根据用第一规定语言描述的程序生成用第二规定语言描述的中间代码;
反向转换器,其生成从用上述第二规定语言描述的中间代码反向转换成的用上述第一规定语言描述的程序;以及
第一执行文件转换器以及第二执行文件转换器,它们彼此不同,根据用上述第二规定语言描述的中间代码生成能够由可编程逻辑控制器执行的执行文件,的计算机来执行:
使用上述第一中间代码转换器根据用上述第一规定语言描述的原始程序生成第一中间代码,并且使用上述第二中间代码转换器根据上述第一中间代码的生成所使用的上述原始程序生成与上述第一中间代码不同的第二中间代码的中间代码生成步骤;
使用上述反向转换器生成从上述第一中间代码反向转换成的反向转换程序的反向转换程序生成步骤;
使用上述第一中间代码转换器根据上述反向转换程序生成再次转换第一中间代码,并且使用上述第二中间代码转换器根据上述反向转换程序生成与上述再次转换第一中间代码不同的再次转换第二中间代码的再次转换中间代码生成步骤;
对上述第一中间代码与上述再次转换第一中间代码进行比较,或者对上述第二中间代码与上述再次转换第二中间代码进行比较的中间代码核对步骤;
在上述中间代码核对步骤的比较结果一致的情况下,使用上述第一执行文件转换器根据上述再次转换第一中间代码生成第一执行文件,使用上述第二执行文件转换器根据上述再次转换第二中间代码生成与上述第一执行文件不同的第二执行文件的执行文件生成步骤;以及
在具有由第一控制装置以及第一存储装置、和第二控制装置以及第二存储装置二重化后的控制装置以及存储装置的可编程逻辑控制器中,向上述第一控制装置转送上述第一执行文件并使上述第一存储装置存储上述第一执行文件,向上述第二控制装置转送上述第二执行文件并使上述第二存储装置存储上述第二执行文件的文件转送步骤。
根据上述方式,能够适当地实现第一发明的可编程逻辑控制器用程序的创建支持装置。
附图说明
通过以下参照附图对本发明的优选实施方式进行的详细描述,本发明前述的和其它的特点和优点得以进一步明确。其中,附图标记表示本发明的要素,其中:
图1是构成PLC的控制装置、输入装置以及输出装置的外观的立体图。
图2是对由控制装置、输入装置以及输出装置构成的PLC的模块结构以及PLC用程序的创建支持装置的连接的例子进行说明的图。
图3是对PLC用程序的创建支持装置的处理顺序进行说明的流程图。
图4是对PLC用程序的创建支持装置的、在图3所示的各处理中生成各程序等的顺序进行说明的图。
具体实施方式
以下,使用附图对本发明的实施方式进行说明
如图1所示,PLC1由控制装置10、输入装置20、输出装置30构成。输入装置20以及输出装置30根据输入输出的个数适当地增设。在输入装置20内收容有具备用于与控制装置10连接的连接器20B的输入板20A,设置有连接来自多个输入设备(开关、传感器等)的布线的输入端子20F。在输出装置30内收容有具备用于与控制装置10连接的连接器30C的输出板30A,设置有连接朝向多个输出设备(继电器、马达等)的布线的输出端子30G。在控制装置10内收容有具备用于与输入装置20连接的连接器10B、用于与输出装置30连接的连接器10C的控制板10A,设置有能够连接个人计算机等PLC用程序的创建支持装置的连接器11G、12G等。另外例如,在控制装置10设置有通知发生异常的警报装置14。
接下来使用图2对PLC1的模块结构以及连接的例子进行说明。输入装置20的输入端子20F连接来自多个输入设备(开关40A、传感器40B…输入装置40N等)的布线,输入有与多个输入设备的导通状态相关的信号(开启或者关闭的信息,等)。被输入的与导通状态相关的信号经由接口21A(以下,将接口记载为I/F)以及连接器20B传输至控制装置10。
在本实施方式中说明的PLC1(例如安全PLC)为对控制装置以及存储装置进行二重化而成的结构。换句话说,控制装置10具备第一控制装置以及第一存储装置、和第二控制装置以及第二存储装置,该第一控制装置以及第一存储装置由第一CPU11A(相当于第一控制装置)、以及第一RAM11B和第一ROM11C(相当于第一存储装置)构成,该第二控制装置以及第二存储装置由第二CPU12A(相当于第二控制装置)、以及第二RAM12B和第二ROM12C(相当于第二存储装置)构成。另外,第一ROM11C、第二ROM12C使用EEPROM、FlashROM等能够改写的ROM,上述CPU所执行的程序即执行文件被存储至上述ROM。
用户使用使用了个人计算机等的PLC用程序的创建支持装置50(以下,将PLC用程序的创建支持装置50简称为PC50),能够创建使用了梯形图语言等的自制的程序(源代码等)。以下,将上述的用户的自制程序称为原始程序。而且,用户使用PC50,根据相同的梯形图语言程序生成不同的2个种类的执行文件(本机代码),并将第一执行文件存储至第一ROM11C,将第二执行文件存储至第二ROM12C。此外,第一ROM11C中还存储有经由I/F11E以及连接器11G与PC50进行通信的程序等,第二ROM12C中还存储有经由I/F12E以及连接器12G与PC50进行通信的程序等。
第一CPU11A将基于存储于第一ROM11C的第一执行文件、和经由连接器10B以及I/F11D从输入装置20输入的来自各输入设备的与导通状态相关的信号的运算结果,输出至核对装置10S。另外,第二CPU12A将基于存储于第二ROM12C的第二执行文件、和经由连接器10B以及I/F12D从输入装置20输入的来自各输入设备的与导通状态相关的信号的运算结果,输出至核对装置10S。核对装置10S例如是核对用电路,在来自第一CPU11A的输出与来自第二CPU12A的输出一致的情况下,将一致的输出经由I/F10T以及连接器10C输出至输出装置30。另外核对装置10S在来自第一CPU11A的输出与来自第二CPU12A的输出不一致的情况下,不进行朝向I/F10T的输出,而是使警报装置14(例如LED、蜂鸣器等)工作,通知发生了异常。
输出装置30的输出端子30G连接朝向多个输出设备(马达42A、继电器42B…输出装置42N等)的布线。而且输出装置30将通过控制装置10求出的运算结果,经由连接器30C以及I/F31A输出至与输出端子30G连接的输出设备。
接下来使用图3以及图4,对由PC50(PLC用程序的创建支持装置)实施的PLC用程序的创建支持的处理顺序(参照图3),以及在各处理中生成的程序等(参照图4)进行说明。用户使用PC50或者其他个人计算机等,创建成为搭载于PLC1的执行文件的源的原始程序,并将创建出的原始程序存储至PC50。此外,在本实施方式的说明中,原始程序作为用顺序控制用的梯形图语言描述的程序来进行说明。
另外PC50安装有根据用梯形图语言(相当于第一规定语言)描述的程序(所谓的源代码),生成用中间语言(相当于第二规定语言)描述的中间代码的中间代码转换器(转换器软件)。中间语言是将梯形图语言转换为文本式的描述所成的语言,即使对不同种类的控制装置(CPU),也能够应用相同的中间语言。另外PC50安装有(存储有)代码生成顺序不同的第一中间代码转换器和第二中间代码转换器。并且PC50安装有生成从用中间语言描述的中间代码反向转换成的程序(用梯形图语言描述的程序)的反向转换器(转换器软件)。另外PC50安装有根据用中间语言描述的中间代码程序,生成能够由PLC执行的执行文件(机器语言等本机代码)的执行文件转换器(转换器软件)。并且,安装有彼此不同的第一执行文件转换器和第二执行文件转换器。以下,使用图3,对使用安装有上述的各转换器软件的PC50来创建PLC用程序的处理顺序进行说明,并且,使用图4,对通过各处理生成的程序等进行说明。
在步骤S10中,PC50判定是否选择了原始程序(用梯形图语言描述的源代码)并输入了执行开始的指示,在选择了原始程序并输入了执行开始的指示的情况下(是)进入步骤S20,否则的情况下(否)返回到步骤S10。
在进入了步骤S20的情况下,PC50启动第一中间代码转换器,根据原始程序生成第一中间代码(参照图4)进入步骤S25A。然后在步骤S25A中,PC50判定是否具有第一中间代码转换器的生成时的错误,在没有错误的情况下(否)进入步骤S30,在有错误的情况下(是)进入步骤S25B显示错误消息并结束处理。在进入了步骤S30的情况下,PC50启动第二中间代码转换器,根据原始程序生成第二中间代码(参照图4)进入步骤S35A。然后在步骤S35A中,PC50判定是否具有第二中间代码转换器的生成时的错误,在没有错误的情况下(否)进入步骤S40,在有错误的情况下(是)进入步骤S45B显示错误消息并结束处理。该步骤S20、S30的处理相当于中间代码生成步骤,执行步骤S20、S30的处理的PC50相当于中间代码生成装置。
在进入了步骤S40的情况下,PC50启动反向转换器,根据在步骤S20中生成的第一中间代码(用中间语言描述的程序)生成反向转换程序(梯形图语言)(参照图4)并进入步骤S45A。然后在步骤S45A中,PC50判定是否具有反向转换器的生成时的错误,在没有错误的情况下(否)进入步骤S50,在有错误的情况下(是)进入步骤S45B显示错误消息并结束处理。该步骤S40的处理相当于反向转换程序生成步骤,执行步骤S40的处理的PC50相当于反向转换程序生成装置。
在进入了步骤S50的情况下,PC50启动第一中间代码转换器,根据在步骤S40中生成的反向转换程序(梯形图语言)生成再次转换第一中间代码(中间语言)(参照图4)并进入步骤S55A。然后在步骤S55A中PC50判定是否具有第一中间代码转换器的生成时的错误,在没有错误的情况下(否)进入步骤S60,在有错误的情况下(是)进入步骤S55B显示错误消息并结束处理。在进入了步骤S60的情况下,PC50启动第二中间代码转换器,根据在步骤S40中生成的反向转换程序(梯形图语言)生成再次转换第二中间代码(中间语言)(参照图4)并进入步骤S65A。然后在步骤S65A中,PC50判定是否具有第二中间代码转换器的生成时的错误,在没有错误的情况下(否)进入步骤S70,在有错误的情况下(是)进入步骤S65B显示错误消息并结束处理。该步骤S50、S60的处理相当于再次转换中间代码生成步骤,执行步骤S50、S60的处理的PC50相当于再次转换中间代码生成装置。
在进入了步骤S70的情况下,PC50对在步骤S20中生成的第一中间代码、和在步骤S50中生成的再次转换第一中间代码进行比较(参照图4),在一致的情况下(是)进入步骤S80,在不一致的情况下(否)进入步骤S75B显示错误消息并结束处理。在进入了步骤S80的情况下,PC50对在步骤S30中生成的第二中间代码、和在步骤S60中生成的再次转换第二中间代码进行比较(参照图4),在一致的情况下(是)进入步骤S110,在不一致的情况下(否)进入步骤S85B显示错误消息并结束处理。该步骤S70、S80的处理相当于中间代码核对步骤,执行步骤S70、S80的处理的PC50相当于中间代码核对装置。此外,在图3所示的处理中,在第一中间代码与再次转换第一中间代码一致,并且第二中间代码与再次转换第二中间代码一致的情况下,执行后述的执行文件生成步骤。但是,也可以在第一中间代码与再次转换第一中间代码一致,或者第二中间代码与再次转换第二中间代码一致,的任意一个成立的情况下,执行后述的执行文件生成步骤。换句话说,也可以省略步骤S70和步骤S80的任意一方。
在进入了步骤S110的情况下,PC50启动第一执行文件转换器,根据在步骤S50中生成的再次转换第一中间代码(中间语言)生成第一执行文件(机器语言)(参照图4)并进入步骤S115A。然后在步骤S115A中,PC50判定是否具有第一执行文件转换器的生成时的错误,在没有错误的情况下(否)进入步骤S120,在有错误的情况下(是)进入步骤S115B显示错误消息并结束处理。在进入了步骤S120的情况下,PC50启动第二执行文件转换器,根据在步骤S60中生成的再次转换第二中间代码(中间语言)生成第二执行文件(机器语言)(参照图4)并进入步骤S125A。然后在步骤S125A中,PC50判定是否具有第二执行文件转换器的生成时的错误,在没有错误的情况下(否)进入步骤S130,在有错误的情况下(是)进入步骤S125B显示错误消息并结束处理。该步骤S110、S120的处理相当于执行文件生成步骤,执行步骤S110、S120的处理的PC50相当于执行文件生成装置。
在进入了步骤S130的情况下,PC50将在步骤S110中生成的第一执行文件,经由连接器11G以及I/F11E转送至第一CPU11A(参照图4),并使第一ROM11C存储第一执行文件(参照图2),进入步骤S135A。然后在步骤S135A中,PC50判定是否具有由第一执行文件的转送等引起的错误,在没有错误的情况下(否)进入步骤S140,在有错误的情况(是)进入步骤S135B显示错误消息并结束处理。在进入了步骤S140的情况下,PC50将在步骤S120中生成的第二执行文件经由连接器12G以及I/F12E转送至第二CPU12A(参照图4)并使第二ROM12C存储第二执行文件(参照图2),进入步骤S145A。然后在步骤S145A中,PC50判定是否具有由第二执行文件的转送等引起的错误,在没有错误的情况下(否)进入步骤S150,在有错误的情况下(是)进入步骤S145B显示错误消息并结束处理。该步骤S130、S140的处理相当于文件转送步骤,执行步骤S130、S140的处理的PC50相当于文件转送装置。
在进入了步骤S150的情况下,PC50将在步骤S20中生成的第一中间代码,经由连接器11G以及I/F11E转送至第一CPU11A(参照图4)并使第一ROM11C存储第一中间代码(参照图2),进入步骤S155A。然后在步骤S155A中,PC50判定是否具有由第一中间代码的转送等引起的错误,在没有错误的情况下(否)结束处理,在有错误的情况下(是)进入步骤S155B显示错误消息并结束处理。另外文件转送步骤S130中也可以包含该步骤S150。另外,步骤S150~S155B的处理也可以省略。
将该第一中间代码存储至第一ROM11C的步骤是保存用于维护的程序,若剩有该第一中间代码,则能够利用各转换器软件容易地生成反向转换程序、再次转换第一中间代码、再次转换第二中间代码、第一执行文件、第二执行文件。因此,无需存储用梯形图语言描述的原始程序、反向转换程序。在该情况下,中间语言的中间代码的大小约为梯形图语言的程序的1/16的大小,所以能够大幅削减存储容量。另外,也无需存储第一中间代码和第二中间代码这2个种类中间代码,仅存储第一中间代码即可。
另外,在本实施方式中说明的PLC用程序的创建支持方法,根据第一规定语言的原始程序,使用代码生成顺序不同的2个种类的中间代码转换器(转换器软件),生成不同的2个种类的中间代码,并使用代码生成顺序不同的2个种类的执行文件转换器(转换器软件),根据不同的2个种类的中间代码生成2个种类的执行文件。由此,在任意一个转换器软件出现了故障的情况下,能够适当地使PLC的输出停止,所以能够更加可靠地防止由执行文件的错误引起的PLC的紧急停止。另外,在步骤S70中对第一中间代码和再次转换第一中间代码进行比较,在步骤S80中对第二中间代码和再次转换第二中间代码进行比较,从而能够排除设计者一句一句地确认中间代码的以往的中间代码确认作业,缩短时间和精力。另外,在中间代码核对步骤中,即使在反向转换器(转换器软件)出现了故障的情况下,也能够适当地发现故障。
另外,能够相对容易地实现具有存储装置和控制装置的PLC用程序的创建支持装置(PC50),其中,
上述存储装置存储有第一中间代码转换器、第二中间代码转换器、反向转换器、第一执行文件转换器、第二执行文件转换器,
上述控制装置通过第一中间代码转换器、第二中间代码转换器、反向转换器、第一执行文件转换器、以及第二执行文件转换器的执行,来执行中间代码生成步骤、反向转换程序生成步骤、再次转换中间代码生成步骤、中间代码核对步骤、执行文件生成步骤、以及文件转送步骤。
本发明的可编程逻辑控制器用程序的创建支持装置、以及可编程逻辑控制器用程序的创建支持方法并不限于在上述实施方式中说明的处理顺序、结构、外观等,能够在不变更本发明的主旨的范围内进行各种的变更、追加、删除。另外在本实施方式中说明的可编程逻辑控制器并不限于在上述实施方式中说明的结构、构造、外观、形状等,能够在不变更本发明的主旨的范围内进行各种的变更、追加、删除。
另外,在本实施方式的说明中,对作为第一规定语言使用了梯形图语言、作为第二规定语言使用中间语言的例子进行了说明,但第一规定语言并不限于梯形图语言,第二规定语言并不限于中间语言。另外,本实施方式的说明所使用的数值是一个例子,并不限于该数值。另外在本实施方式的说明中,根据第一中间代码生成反向转换程序并将第一中间代码存储至第一ROM,但也可以根据第二中间代码生成反向转换程序并将第二中间代码存储至第二ROM。
Claims (6)
1.一种可编程逻辑控制器用程序的创建支持装置,其特征在于,具有:
第一中间代码转换器以及第二中间代码转换器,它们彼此不同,根据用第一规定语言描述的程序生成用第二规定语言描述的中间代码;
反向转换器,其生成从用所述第二规定语言描述的中间代码反向转换成的用所述第一规定语言描述的程序;
第一执行文件转换器以及第二执行文件转换器,它们彼此不同,根据用所述第二规定语言描述的中间代码生成能够由可编程逻辑控制器执行的执行文件;
中间代码生成装置,其使用所述第一中间代码转换器根据用所述第一规定语言描述的原始程序生成第一中间代码,并且使用所述第二中间代码转换器根据所述第一中间代码的生成所使用的所述原始程序生成与所述第一中间代码不同的第二中间代码;
反向转换程序生成装置,其使用所述反向转换器生成从所述第一中间代码反向转换成的反向转换程序;
再次转换中间代码生成装置,其使用所述第一中间代码转换器根据所述反向转换程序生成再次转换第一中间代码,并且使用所述第二中间代码转换器根据所述反向转换程序生成与所述再次转换第一中间代码不同的再次转换第二中间代码;
中间代码核对装置,其对所述第一中间代码与所述再次转换第一中间代码进行比较,或者对所述第二中间代码与所述再次转换第二中间代码进行比较;
执行文件生成装置,其在所述中间代码核对装置的比较结果一致的情况下,使用所述第一执行文件转换器根据所述再次转换第一中间代码生成第一执行文件,使用所述第二执行文件转换器根据所述再次转换第二中间代码生成与所述第一执行文件不同的第二执行文件;以及
文件转送装置,在具有由第一控制装置以及第一存储装置、和第二控制装置以及第二存储装置构成的被二重化的控制装置以及存储装置的可编程逻辑控制器中,向所述第一控制装置转送所述第一执行文件并使所述第一存储装置存储所述第一执行文件,向所述第二控制装置转送所述第二执行文件并使所述第二存储装置存储所述第二执行文件。
2.根据权利要求1所述的可编程逻辑控制器用程序的创建支持装置,其特征在于,
使用所述中间代码核对装置,对所述第一中间代码与所述再次转换第一中间代码进行比较,并且对所述第二中间代码与所述再次转换第二中间代码进行比较,
使用所述执行文件生成装置,在所述中间代码核对装置的双方的比较结果分别一致的情况下,使用所述第一执行文件转换器根据所述再次转换第一中间代码生成所述第一执行文件,使用所述第二执行文件转换器根据所述再次转换第二中间代码生成与所述第一执行文件不同的所述第二执行文件。
3.根据权利要求1所述的可编程逻辑控制器用程序的创建支持装置,其特征在于,
使用所述文件转送装置,进一步向所述第一控制装置转送所述第一中间代码并使所述第一存储装置存储所述第一中间代码。
4.根据权利要求2所述的可编程逻辑控制器用程序的创建支持装置,其特征在于,
使用所述文件转送装置,进一步向所述第一控制装置转送所述第一中间代码并使所述第一存储装置存储所述第一中间代码。
5.根据权利要求1~4的任一项所述的可编程逻辑控制器用程序的创建支持装,其特征在于,
所述第一规定语言是梯形图语言,所述第二规定语言是中间语言,其中,
所述中间语言是将梯形图语言转换为文本式的描述的语言,即使执行所述执行文件的控制装置是不同的种类,也能够应用相同的中间语言。
6.一种可编程逻辑控制器用程序的创建支持方法,其特征在于,使用具备:
第一中间代码转换器以及第二中间代码转换器,它们彼此不同,根据用第一规定语言描述的程序生成用第二规定语言描述的中间代码;
反向转换器,其生成从用所述第二规定语言描述的中间代码反向转换成的用所述第一规定语言描述的程序;以及
第一执行文件转换器以及第二执行文件转换器,它们彼此不同,根据用所述第二规定语言描述的中间代码生成能够由可编程逻辑控制器执行的执行文件,的计算机执行:
中间代码生成步骤,其使用所述第一中间代码转换器根据用所述第一规定语言描述的原始程序生成第一中间代码,并且使用所述第二中间代码转换器根据所述第一中间代码的生成所使用的所述原始程序生成与所述第一中间代码不同的第二中间代码;
反向转换程序生成步骤,其使用所述反向转换器生成从所述第一中间代码反向转换成的反向转换程序;
再次转换中间代码生成步骤,其使用所述第一中间代码转换器根据所述反向转换程序生成再次转换第一中间代码,并且使用所述第二中间代码转换器根据所述反向转换程序生成与所述再次转换第一中间代码不同的再次转换第二中间代码;
中间代码核对步骤,其对所述第一中间代码与所述再次转换第一中间代码进行比较,或者对所述第二中间代码与所述再次转换第二中间代码进行比较;
执行文件生成步骤,其在所述中间代码核对步骤的比较结果一致的情况下,使用所述第一执行文件转换器根据所述再次转换第一中间代码生成第一执行文件,使用所述第二执行文件转换器根据所述再次转换第二中间代码生成与所述第一执行文件不同的第二执行文件;以及
文件转送步骤,其在具有由第一控制装置以及第一存储装置、和第二控制装置以及第二存储装置二重化后的控制装置以及存储装置的可编程逻辑控制器中,向所述第一控制装置转送所述第一执行文件并使所述第一存储装置存储所述第一执行文件,向所述第二控制装置转送所述第二执行文件并使所述第二存储装置存储所述第二执行文件。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014081034A JP6340886B2 (ja) | 2014-04-10 | 2014-04-10 | プログラマブルロジックコントローラ用プログラムの作成支援装置及びプログラマブルロジックコントローラ用プログラムの作成支援方法 |
JP2014-081034 | 2014-04-10 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104977892A true CN104977892A (zh) | 2015-10-14 |
CN104977892B CN104977892B (zh) | 2019-03-26 |
Family
ID=52823514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510165723.1A Expired - Fee Related CN104977892B (zh) | 2014-04-10 | 2015-04-09 | 可编程逻辑控制器用程序的创建支持装置和创建支持方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9921565B2 (zh) |
EP (1) | EP2930574B1 (zh) |
JP (1) | JP6340886B2 (zh) |
CN (1) | CN104977892B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032056A (zh) * | 2018-06-13 | 2018-12-18 | 华东师范大学 | 可编程逻辑控制器编程语言转换方法 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3413147B1 (en) * | 2017-06-07 | 2022-03-23 | Brooks Automation (Germany) GmbH | Method for controlling a plc using a pc program |
JP6950665B2 (ja) * | 2018-11-02 | 2021-10-13 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
KR102219387B1 (ko) * | 2019-09-11 | 2021-02-23 | 엘에스일렉트릭(주) | 피엘씨 시스템의 오류 상태 제어방법 |
CN115066676B (zh) * | 2020-02-14 | 2023-06-09 | 三菱电机株式会社 | 控制系统、程序创建辅助装置、程序创建辅助方法及计算机可读取的记录介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026336A (en) * | 1989-01-25 | 2000-02-15 | Hitachi, Ltd | Method of and automatically generating control programs for computer controlled systems |
JP2001022412A (ja) * | 1999-07-09 | 2001-01-26 | Toshiba Corp | プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1477468A (zh) * | 2002-06-07 | 2004-02-25 | 欧姆龙株式会社 | 可编程控制器、cpu单元、特殊功能模块以及双重化处理方法 |
JP2006235660A (ja) * | 2005-02-21 | 2006-09-07 | Seiko Instruments Inc | 制御システムおよび制御方法 |
CN101002149A (zh) * | 2004-07-30 | 2007-07-18 | 株式会社捷太格特 | 可编程控制器 |
CN102929214A (zh) * | 2011-08-11 | 2013-02-13 | 西门子公司 | 一种嵌入式多处理单元并行处理系统及其运行方法 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05134880A (ja) * | 1991-06-05 | 1993-06-01 | Fujitsu Ltd | デイジタル計算機 |
JP3449095B2 (ja) | 1996-02-01 | 2003-09-22 | 日産自動車株式会社 | シーケンス回路の照合方法 |
JPH09230915A (ja) * | 1996-02-26 | 1997-09-05 | Matsushita Electric Works Ltd | プログラミング装置 |
US6654953B1 (en) * | 1998-10-09 | 2003-11-25 | Microsoft Corporation | Extending program languages with source-program attribute tags |
US7543015B2 (en) * | 2002-01-16 | 2009-06-02 | Xerox Corporation | Symmetrical structural pattern matching |
US20050193378A1 (en) * | 2004-03-01 | 2005-09-01 | Breault Richard E. | System and method for building an executable program with a low probability of failure on demand |
US7389499B2 (en) * | 2004-10-21 | 2008-06-17 | International Business Machines Corporation | Method and apparatus for automatically converting numeric data to a processor efficient format for performing arithmetic operations |
US7418676B2 (en) * | 2005-01-19 | 2008-08-26 | Seiko Epson Corporation | Asynchronous circuit design tool and computer program product |
US7844958B2 (en) * | 2005-03-11 | 2010-11-30 | Aptana, Inc. | System and method for creating target byte code |
DE202006000135U1 (de) * | 2006-01-05 | 2006-04-20 | Framework Systems Gmbh | Vorrichtung zum Erzeugen von Programmcode eines Nutzerprogrammes |
JP5168012B2 (ja) | 2008-07-28 | 2013-03-21 | 株式会社ジェイテクト | プログラマブルコントローラのプログラム編集装置 |
US8327316B2 (en) * | 2008-09-30 | 2012-12-04 | Ics Triplex Isagraf Inc. | Compilation model |
JP5576605B2 (ja) * | 2008-12-25 | 2014-08-20 | パナソニック株式会社 | プログラム変換装置およびプログラム変換方法 |
CN101776877A (zh) * | 2009-01-12 | 2010-07-14 | 鸿富锦精密工业(深圳)有限公司 | 可编程逻辑控制器程序编辑系统及方法 |
JP5515374B2 (ja) * | 2009-04-02 | 2014-06-11 | 富士電機株式会社 | プログラマブルコントローラ、プログラム実行監視方法及びプログラム |
WO2013004389A1 (de) * | 2011-07-06 | 2013-01-10 | Abb Ag | Verfahren und vorrichtung zur programmierung und konfigurierung einer speicherprogrammierbaren steuereinrichtung |
US20140282369A1 (en) * | 2013-03-14 | 2014-09-18 | Adminovate, Inc. | Software application generator |
JP6461092B2 (ja) * | 2013-03-19 | 2019-01-30 | ブルックス シーシーエス ゲーエムベーハーBrooks CCS GmbH | ツールコンパイラ |
EP2799981A1 (en) * | 2013-04-29 | 2014-11-05 | Siemens Aktiengesellschaft | Method for providing code, code generator and software development environment |
US9411920B2 (en) * | 2013-05-14 | 2016-08-09 | National Instruments Corporation | Specifying and implementing relative hardware clocking in a high level programming language |
-
2014
- 2014-04-10 JP JP2014081034A patent/JP6340886B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-06 US US14/679,362 patent/US9921565B2/en not_active Expired - Fee Related
- 2015-04-09 EP EP15162951.6A patent/EP2930574B1/en not_active Not-in-force
- 2015-04-09 CN CN201510165723.1A patent/CN104977892B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6026336A (en) * | 1989-01-25 | 2000-02-15 | Hitachi, Ltd | Method of and automatically generating control programs for computer controlled systems |
JP2001022412A (ja) * | 1999-07-09 | 2001-01-26 | Toshiba Corp | プログラミング装置及びプログラマブルコントローラ並びにプログラムを記録したコンピュータ読み取り可能な記録媒体 |
CN1477468A (zh) * | 2002-06-07 | 2004-02-25 | 欧姆龙株式会社 | 可编程控制器、cpu单元、特殊功能模块以及双重化处理方法 |
CN101002149A (zh) * | 2004-07-30 | 2007-07-18 | 株式会社捷太格特 | 可编程控制器 |
JP2006235660A (ja) * | 2005-02-21 | 2006-09-07 | Seiko Instruments Inc | 制御システムおよび制御方法 |
CN102929214A (zh) * | 2011-08-11 | 2013-02-13 | 西门子公司 | 一种嵌入式多处理单元并行处理系统及其运行方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032056A (zh) * | 2018-06-13 | 2018-12-18 | 华东师范大学 | 可编程逻辑控制器编程语言转换方法 |
CN109032056B (zh) * | 2018-06-13 | 2020-01-10 | 华东师范大学 | 可编程逻辑控制器编程语言转换方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2930574A2 (en) | 2015-10-14 |
US9921565B2 (en) | 2018-03-20 |
JP6340886B2 (ja) | 2018-06-13 |
JP2015201132A (ja) | 2015-11-12 |
EP2930574A3 (en) | 2015-11-25 |
CN104977892B (zh) | 2019-03-26 |
EP2930574B1 (en) | 2018-08-01 |
US20150293515A1 (en) | 2015-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104977892A (zh) | 可编程逻辑控制器用程序的创建支持装置 | |
US11809697B2 (en) | Procedure for configuring a modular safety switching device | |
US11022962B2 (en) | High availability industrial automation system having primary and secondary industrial automation controllers and method of communicating information over the same | |
JP5881600B2 (ja) | 既存の信号ボックスを置換する電子信号ボックスの製作のための方法 | |
CN103383681B (zh) | 一种文件类型识别方法及系统 | |
JP2008310390A (ja) | 安全コントローラのプログラム開発支援装置 | |
JP2014225276A (ja) | 安全関連制御ユニットおよび自動化設備の制御方法 | |
US20220179386A1 (en) | Control device | |
US20130185620A1 (en) | Ladder program creation apparatus | |
EP2541349A2 (en) | Inverter system having a safety module | |
KR102004456B1 (ko) | Plc 제어 프로그램을 구조체 데이터로 변환하는 장치 및 방법 | |
JP6175788B2 (ja) | マイクロプログラムを更新可能な電子機器 | |
KR101593835B1 (ko) | Plc 시스템 | |
CN106182017A (zh) | 基于rs485串口总线上位机ipc控制机器人的方法及系统 | |
JP2018152032A (ja) | 情報処理装置、情報処理方法、および、情報処理プログラム | |
US10503137B2 (en) | Safety module for an automation system, method for operating a safety module in an automation system and automation system | |
US20220173974A1 (en) | Network management device, management method, and recording medium | |
US11150624B2 (en) | System and method for fail-safe provision of an analog output value | |
US20150169483A1 (en) | Expansion unit | |
CN102332853B (zh) | 安全停机装置和系统 | |
JPWO2018216136A1 (ja) | 車両用発電機の制御装置 | |
US12007737B2 (en) | Safety-directed control system | |
CN112764409B (zh) | 安全控制电路及方法、存储介质、电子设备 | |
CN105247836A (zh) | 电子装置的基本模块 | |
KR101418478B1 (ko) | 실행데이터 검증기능이 구비된 비행제어 ofp시스템 및 그 제어방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |
Granted publication date: 20190326 |
|
CF01 | Termination of patent right due to non-payment of annual fee |