JP6532610B2 - プログラム編集装置、プログラム編集方法及びプログラム編集プログラム - Google Patents
プログラム編集装置、プログラム編集方法及びプログラム編集プログラム Download PDFInfo
- Publication number
- JP6532610B2 JP6532610B2 JP2018536560A JP2018536560A JP6532610B2 JP 6532610 B2 JP6532610 B2 JP 6532610B2 JP 2018536560 A JP2018536560 A JP 2018536560A JP 2018536560 A JP2018536560 A JP 2018536560A JP 6532610 B2 JP6532610 B2 JP 6532610B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- sequence control
- plc
- control program
- 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
- 238000000034 method Methods 0.000 title claims description 21
- 238000003860 storage Methods 0.000 claims description 18
- 230000008707 rearrangement Effects 0.000 description 42
- 238000005457 optimization Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 13
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000001419 dependent effect Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
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/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/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/045—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using logic state machines, consisting only of a memory or a programmable logic device containing the logic for the controlled machine and in which the state of its outputs is dependent on the state of its inputs or part of its own output states, e.g. binary decision controllers, finite state controllers
-
- 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
-
- 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/054—Input/output
-
- 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/10—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches
- G05B19/102—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using selector switches for input of programme steps, i.e. setting up sequence
-
- 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/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4093—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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
- 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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/323—Visualisation of programs or trace data
-
- 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/51—Source to source
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Programmable Controllers (AREA)
Description
このため、命令実行順序が必ずしも効率化されておらず、バイナリを実行した際のシーケンス制御の実行所要時間が希望所要時間以内に収まらない場合がある。このような場合に、ユーザは、シーケンス制御の実行所要時間を希望所要時間以内に収めるように再度シーケンス制御プログラムを修正しなければならないという課題がある。
シーケンス制御用の言語で記述された制御プログラムであるシーケンス制御プログラムに含まれる複数の命令の命令間の引数と返り値との関係を解析する関係解析部と、
前記関係解析部により解析された命令間の引数と返り値との関係に基づき、前記複数の命令の命令実行順序の変更及び命令単位での前記シーケンス制御プログラムの分割の少なくともいずれかを行うプログラム編集部とを有する。
***構成の説明***
図1は、本実施の形態に係るプログラミング装置400の機能構成例及びPLC装置401のハードウェア構成例を示す。
プログラミング装置400は、プログラム編集装置の例である。また、プログラミング装置400で行われる動作は、プログラム編集方法の例である。また、プログラミング装置400で行われる動作を実現するプログラムは、プログラム編集プログラムの例である。
図1に示すように、プログラミング装置400は、シーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302で構成される。
PLC装置401は、プロセッサ500、I/O(Input/Output)装置501、メモリ503、記憶装置504及びバス505で構成される。
シーケンス制御プログラム200は、シーケンス制御用の言語で記述された制御プログラムである。シーケンス制御プログラム200には、複数のPLC命令(以下、単に命令ともいう)が含まれる。図5は、シーケンス制御プログラム200の一例を示す。図5の詳細は後述する。シーケンス制御プログラム200は、ユーザ100により生成される。ユーザ100は、PLC装置401にシーケンス制御を行わせる者である。
等価最適化シーケンス制御プログラム201は、シーケンス制御プログラム最適化部300により最適化されたシーケンス制御プログラムである。具体的には、等価最適化シーケンス制御プログラム201は、シーケンス制御プログラム200内の複数のPLC命令の命令実行順序が変更されたシーケンス制御プログラム又は命令単位でシーケンス制御プログラム200を分割して得られたシーケンス制御プログラムである。
高級言語プログラム202は、汎用的な高級言語で記述された制御プログラムである。高級言語プログラム202は、例えばC言語などで記述された制御プログラムである。
バイナリ203は、PLC装置401で実行可能なバイナリコードである。
本実施の形態では、PLC装置401の種類は問わない。前述したように、PLC装置401は、例えば、プロセッサ500、I/O装置501、メモリ503、記憶装置504及びバス505で構成される。
記憶装置1504には、図1に示すシーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の機能を実現するプログラムが記憶されている。
これらプログラムは、記憶装置1504からメモリ1503にロードされて、プロセッサ1500により実行される。つまり、プロセッサ1500は、シーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の動作を行う。
図2では、プロセッサ1500がシーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の機能を実現するプログラムを実行している状態を模式的に表している。
ユーザインタフェース装置1506は、ユーザ100からシーケンス制御プログラム200を取得する。
I/O装置1501は、設定値及びコンパイラ302により生成されたバイナリ203をPLC装置401に出力する。
まず、PLC装置401は、入力処理900を実行する。入力処理900では、PLC装置401は、バイナリ203の実行に必要な設定値をプログラミング装置400のI/O装置1501から取得する。なお、PLC装置401は、入力処理900の前にバイナリ203をI/O装置1501から取得済みである。
次に、PLC装置401は、シーケンス制御処理901を行う。つまり、PLC装置401は、入力処理900で取得した設定値を用いてバイナリ203を実行する。
次に、PLC装置401は、出力処理902にて、シーケンス制御処理901の実行結果を外部装置に出力したり、記憶装置504に格納する。
入力処理900、シーケンス制御処理901、出力処理902は実行周期903ごとに繰り返し行われる。
実行周期903を短くし、一定時間内に行われる入力処理900、シーケンス制御処理901、出力処理902の回数を多くすれば、PLC装置401の性能を高めることができる。
また、PLC装置401の振る舞いは入力処理900と出力処理902で決まるため、入力処理900と出力処理902との整合が取れれば、PLC装置401は、シーケンス制御処理901をどのように行ってもよい。
シーケンス制御プログラム最適化部300は、変数間依存解析部310、情報記憶部311及びPLC命令並び替え分割部312で構成される。
また、変数間依存解析部310は、PLC命令間の依存関係が示される変数間依存情報210を出力する。図7は、変数間依存情報210の一例である。図7の詳細は後述する。
変数間依存解析部310は関係解析部の例である。また、変数間依存解析部310で行われる処理は関係解析処理の例である。
命令情報211には、例えば、複数の演算子のうち、連続実行により演算効率が向上する演算子の組み合わせが定義されている。図8は命令情報211の一例を示す。図8の詳細は後述するが、図8に記述されている演算子の組み合わせは、推奨演算子組み合わせに相当する。具体的には、ADDとADD、ADDとSUBの組み合わせ、SUBとADD、SUBとSUBの組み合わせが推奨演算子組み合わせに相当する。
PLC装置情報212には、例えば、PLC装置401の機種ごとに、PLC装置401が同時に実行できるPLC命令の数(同時実行命令数)が定義されている。図9はPLC装置情報212の例である。図9の詳細は後述する。
なお、情報記憶部311は、PLC命令に関する、図8とは異なる種類の情報を命令情報211として記憶していてもよい。
また、情報記憶部311は、PLC装置401に関する、図9とは異なる種類の情報をPLC装置情報212として記憶していてもよい。
等価最適化シーケンス制御プログラム201は、シーケンス制御プログラム200と処理結果が同一で、PLC装置401がより高速に実行できるシーケンス制御プログラムである。
PLC命令並び替え分割部312は、より具体的には、シーケンス制御プログラム200内の複数のPLC命令の命令実行順序の変更及びPLC命令単位でのシーケンス制御プログラム200の分割の少なくともいずれかを行って、等価最適化シーケンス制御プログラム201を生成する。
PLC命令並び替え分割部312は、命令実行順序の変更を行う場合は、変数間依存情報210に示されるPLC命令間の引数と返り値との関係と、シーケンス制御プログラム200内の各PLC命令に含まれる演算子とに基づき、連続実行により演算効率が向上する2以上の命令を複数のPLC命令の中から指定する。そして、PLC命令並び替え分割部312は、指定した2以上のPLC命令が連続して実行されるように複数のPLC命令の命令実行順序の変更を行う。
例えば、PLC命令並び替え分割部312は、複数のPLC命令から任意のPLC命令を選択し、選択したPLC命令(選択命令ともいう)の返り値を引数とするPLC命令の返り値を引数とするPLC命令以外のPLC命令であって選択命令に含まれる演算子とともに命令情報211において推奨演算子組み合わせに含まれる演算子が含まれる1以上のPLC命令と、選択命令とを指定する。
また、PLC命令並び替え分割部312は、シーケンス制御プログラム200の分割を行う場合は、命令情報211に示されるPLC命令間の引数と返り値との関係と、PLC装置情報212に示されるPLC装置401で同時に実行できる命令数(同時実行命令数)とに基づき、シーケンス制御プログラム200を同時実行命令数と同数の分割プログラムに分割する。
例えば、PLC命令並び替え分割部312は、複数のPLC命令から任意のPLC命令を選択し、選択した選択命令と、選択命令の返り値を引数とする他のPLC命令とが同じ分割プログラムに含まれるように、シーケンス制御プログラム200を分割する。
PLC命令並び替え分割部312は、プログラム編集部の例である。また、PLC命令並び替え分割部312で行われる処理はプログラム編集処理の例である。
図5のシーケンス制御プログラム200では、いわゆるラダー2000に、PLC命令2001〜2005が接続されている。図5のシーケンス制御プログラム200では、PLC命令2001、PLC命令2002、PLC命令2003、PLC命令2004、PLC命令2005の順に実行される。
変数2010〜2020は、PLC命令の入力値である引数又はPLC命令の出力値である返り値としてデータを保持する。
PLC命令には様々な種類があり、それぞれの種類に応じて、引数で与えられたデータを処理して、処理結果のデータを返り値として出力する。たとえばPLC命令2001、2003、2004は引数1の値と引数2の値とを加算し、加算値を返り値1として出力する。PLC命令2002は引数1の値と引数2の値とを乗算し、乗算値を返り値1として出力する。PLC命令2005は引数1の値を引数2の値で除算し、除算値を返り値1として出力する。
あるPLC命令の返り値として使用した変数を、のちに実行するPLC命令の引数として使用することもできる。また、シーケンス制御プログラム200には、図5に示すPLC命令2001〜2005で行われる演算以外の演算が行われるPLC命令が含まれていてもよい。また、PLC命令の引数及び返り値の数は、図5に示すものと異なっていてもよい。また、引数及び返り値のいずれかが存在しなくてもよい。
次に、本実施の形態の係る動作例を説明する。
プログラミング装置400のシーケンス制御プログラム最適化部300の変数間依存解析部310は、図6に示す処理を行って変数間依存情報210を得る。
図6は、変数間依存解析部310の動作例を示す。
以下、図6を参照して変数間依存解析部310の動作例を説明する。
図7において、命令1〜命令5は、図5に示す命令1〜命令5である。
種類の欄には、各PLC命令に含まれる演算子が記述される。
引数の欄には、各PLC命令の引数に用いられる変数が記述される。
返り値の欄には、各PLC命令の返り値に用いられる変数が記述される。
依存先の欄には、各PLC命令が依存している他のPLC命令が記述される。
以下、図10を参照してPLC命令並び替え分割部312の動作例を説明する。
より具体的には、PLC命令並び替え分割部312は、命令情報211を参照して、命令nと命令n+mとが効率よく実行できるか否かを判定する。
図8は命令情報211の例を示す。図8の例では、命令nに含まれる演算子がADDである場合に、命令n+mの演算子がADD又はSUBであれば、命令nと命令n+mは効率よく実行できる。同様に、命令nに含まれる演算子がSUBである場合に、命令n+mの演算子がADD又はSUBであれば、命令nと命令n+mは効率よく実行できる。これらに該当しない場合は、命令nと命令n+mは効率よく実行できない。
また、命令n+mが最後の命令であれば、PLC命令並び替え分割部312は、ステップS3109において、変数nの値と変数pの値をそれぞれ1つ増やし、変数mの値を1に再設定し、ステップS3102に移る。
命令nが、最後の命令であれば、PLC命令並び替え分割部312は処理を終了する。
一方、命令nが最後の命令でなければ、PLC命令並び替え分割部312は、ステップS3109に移る。
図5のシーケンス制御プログラム200と比較すると、図12の等価最適化シーケンス制御プログラム201では、PLC命令の命令実行順序が変更されている。具体的にはPLC命令2003がPLC命令2002よりも先に実行されるように命令実行順序が変更されている。
PLC命令2003の演算子とPLC命令2001の演算子はともにADDであり、ADDとADDとの組み合わせは、図8の命令情報211によれば、効率よく実行できる演算子の組み合わせに該当する。そして、PLC命令2003は、PLC命令2003とPLC命令2001との間にあるPLC命令2002に依存していない。
このため、PLC命令2003は図10のステップS3106にてPLC命令2001の次に配置される。この結果、図12の等価最適化シーケンス制御プログラム201が得られる。
以下、図11を参照してPLC命令並び替え分割部312の動作例を説明する。
前述したように、PLC装置情報212は図9に示す通りである。PLC装置情報212では、PLC装置401の機種ごとに、PLC装置401が何個のPLC命令を同時に実行できるかが定義されている。
PLC命令並び替え分割部312は、現在対象としているPLC装置401の機種が機種2であれば、当該PLC装置401の同時実行命令数として2を取得する。
なお、この時点では、各分割プログラムは空白である。
命令nが最後のPLC命令ならば、PLC命令並び替え分割部312は処理を終了する。
一方、命令nが最後のPLC命令でなければ、PLC命令並び替え分割部312は、ステップS3211に移る。
命令n+mが最後のPLC命令でなければ、PLC命令並び替え分割部312は、ステップS3210において、変数mの値を1つ増やし、ステップS3206に移る。
一方、命令n+mが最後のPLC命令であれば、PLC命令並び替え分割部312は、ステップS3211において、変数nの値を1つ増やし、変数mの値を1に初期化し、ステップS3204に移る。
図13では、図5に示すシーケンス制御プログラム200が分割プログラム1と分割プログラム2の2つに分割されている。
PLC装置401が同時に2つのプログラムを実行可能であれば、図13に示す分割プログラム1と分割プログラム2を並行して実行することにより、実行所要時間の短縮化が図られる。
PLC命令並び替え分割部312は、図10の命令実行順序の変更及び図11のシーケンス制御プログラムの分割のいずれか一方のみを行ってもよい。また、PLC命令並び替え分割部312は、図10の命令実行順序の変更と図11のシーケンス制御プログラムの分割の両者を行ってもよい。図10の命令実行順序の変更と図11のシーケンス制御プログラムの分割の両者を行う場合は、PLC命令並び替え分割部312は、図10の命令実行順序の変更を行った後のシーケンス制御プログラムに図11のシーケンス制御プログラムの分割を行ってもよい。また、PLC命令並び替え分割部312は、図11のシーケンス制御プログラムの分割を行った後のシーケンス制御プログラム(分割プログラム)に図10の命令実行順序の変更を行ってもよい。
本実施の形態によれば、シーケンス制御プログラムにおける命令実行順序の変更及びシーケンス制御プログラムの分割の少なくともいずれかにより、ユーザが生成したシーケンス制御プログラムから、当該シーケンス制御プログラムと等しい結果が得られるより効率的なシーケンス制御プログラムを生成することができる。
このため、ユーザはPLC装置の構成などにとらわれることなく、所望の処理のみを記述すれば、最も高速にシーケンス制御が可能なプログラムを得ることができる。
図14は、本実施の形態に係るプログラミング装置400の機能構成例及びPLC装置401のハードウェア構成例を示す。
PLC装置401のハードウェア構成例は、図1に示したものと同じであるため、説明を省略する。
本実施の形態では、プログラミング装置400は、シーケンス制御プログラム最適化部300により生成された等価最適化シーケンス制御プログラム201をユーザ100に提示する。より具体的には、図2に示すユーザインタフェース装置1506が等価最適化シーケンス制御プログラム201を表示する。
ユーザ100が生成したシーケンス制御プログラム200が誤っていた場合は、等価最適化シーケンス制御プログラム201も誤ったものとなる。このため、シーケンス制御プログラム200が誤っていた場合は、PLC装置401はユーザの望む通りには動作しない。
本実施の形態では、等価最適化シーケンス制御プログラム201がユーザ100に提示されるため、ユーザ100は等価最適化シーケンス制御プログラム201内のPLC命令を1つずつ解析してPLC装置401の動作を確認してゆくことができる。
本実施の形態では、PLC命令で記述されたシーケンス制御プログラム200を、同様にPLC命令で記述された等価最適化シーケンス制御プログラム201に変換し、等価最適化シーケンス制御プログラム201をユーザ100に提示する。これにより、ユーザ100がPLC命令のみを理解し、高級汎用言語を理解していない場合でも、ユーザ100は、最適化されたシーケンス制御プログラムを確認することができる。
あるいは、これら2つの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これら2つの実施の形態を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
最後に、プログラミング装置400のハードウェア構成の補足説明を行う。
図2に示すプロセッサ1500は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ1500は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)等である。
メモリ1503は、RAM(Random Access Memory)である。
記憶装置1504は、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)等である。
I/O装置1501は、データを受信するレシーバー及びデータを送信するトランスミッターであり、例えば、通信チップ又はNIC(Network Interface Card)である。
ユーザインタフェース装置1506は、マウス、キーボード、ディスプレイ等である。
そして、OSの少なくとも一部がメモリ1503にロードされ、プロセッサ1500により実行される。
プロセッサ1500はOSの少なくとも一部を実行しながら、シーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の機能を実現するプログラムを実行する。
プロセッサ1500がOSを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、プログラミング装置400は、プロセッサ1500を代替する複数のプロセッサを備えていてもよい。
また、シーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の処理の結果を示す情報やデータや信号値や変数値が、メモリ1503、記憶装置1504、プロセッサ1500内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、シーケンス制御プログラム最適化部300、高級言語変換部301及びコンパイラ302の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD等の可搬記憶媒体に記憶されてもよい。
また、プログラミング装置400は、ロジックIC(Integrated Circuit)、GA(Gate Array)、ASIC(Application Specific Integrated Circuit)、FPGA(Field−Programmable Gate Array)といった電子回路により実現されてもよい。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
Claims (4)
- シーケンス制御用の言語で記述された制御プログラムであるシーケンス制御プログラムに含まれる複数の命令の命令間の引数と返り値との関係を解析する関係解析部と、
前記関係解析部により解析された命令間の引数と返り値との関係と、各命令に含まれる演算子とに基づき、連続実行により演算効率が向上する2以上の命令を前記複数の命令の中から指定し、指定した2以上の命令が連続して実行されるように前記複数の命令の命令実行順序の変更を行うプログラム編集部とを有するプログラム編集装置。 - 前記プログラム編集装置は、更に、
連続実行により演算効率が向上する演算子の組み合わせが推奨演算子組み合わせとして定義される命令情報を記憶する情報記憶部を有し、
前記プログラム編集部は、
前記複数の命令から任意の命令を選択し、
選択した選択命令の返り値を引数とする命令の返り値を引数とする命令以外の命令であって前記選択命令に含まれる演算子とともに前記命令情報において前記推奨演算子組み合わせに含まれる演算子が含まれる1以上の命令と、前記選択命令とを指定する請求項1に記載のプログラム編集装置。 - コンピュータが、シーケンス制御用の言語で記述された制御プログラムであるシーケンス制御プログラムに含まれる複数の命令の命令間の引数と返り値との関係を解析し、
前記コンピュータが、解析された命令間の引数と返り値との関係と、各命令に含まれる演算子とに基づき、連続実行により演算効率が向上する2以上の命令を前記複数の命令の中から指定し、指定した2以上の命令が連続して実行されるように前記複数の命令の命令実行順序の変更を行うプログラム編集方法。 - シーケンス制御用の言語で記述された制御プログラムであるシーケンス制御プログラムに含まれる複数の命令の命令間の引数と返り値との関係を解析する関係解析処理と、
前記関係解析処理により解析された命令間の引数と返り値との関係と、各命令に含まれる演算子とに基づき、連続実行により演算効率が向上する2以上の命令を前記複数の命令の中から指定し、指定した2以上の命令が連続して実行されるように前記複数の命令の命令実行順序の変更を行うプログラム編集処理とをコンピュータに実行させるプログラム編集プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2016/075360 WO2018042520A1 (ja) | 2016-08-30 | 2016-08-30 | プログラム編集装置、プログラム編集方法及びプログラム編集プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2018042520A1 JPWO2018042520A1 (ja) | 2018-12-06 |
JP6532610B2 true JP6532610B2 (ja) | 2019-06-19 |
Family
ID=61300369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018536560A Expired - Fee Related JP6532610B2 (ja) | 2016-08-30 | 2016-08-30 | プログラム編集装置、プログラム編集方法及びプログラム編集プログラム |
Country Status (7)
Country | Link |
---|---|
US (1) | US10990073B2 (ja) |
JP (1) | JP6532610B2 (ja) |
KR (1) | KR102041772B1 (ja) |
CN (1) | CN109643093A (ja) |
DE (1) | DE112016007069T5 (ja) |
TW (1) | TWI621066B (ja) |
WO (1) | WO2018042520A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7024679B2 (ja) * | 2018-10-05 | 2022-02-24 | オムロン株式会社 | 開発支援プログラム、開発支援装置、および開発支援方法 |
JP7183877B2 (ja) * | 2019-03-13 | 2022-12-06 | オムロン株式会社 | グラフ表示装置、グラフ表示方法、及びグラフ表示プログラム |
AT522186B1 (de) * | 2019-05-20 | 2020-09-15 | Dipl Ing Dipl Ing Fh Markus Gruber | Computerimplementiertes Verfahren zur rechnergestützten Erzeugung eines ausführbaren Steuerungsprogramms zur Steuerung und/oder Regelung eines technischen Prozesses |
CN111401400B (zh) * | 2020-02-12 | 2023-06-20 | 杭州电子科技大学 | 一种可编程控制器视觉功能块fbd的内部变量优化方法 |
Family Cites Families (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5481741A (en) * | 1986-04-14 | 1996-01-02 | National Instruments Corporation | Method and apparatus for providing attribute nodes in a graphical data flow environment |
JP2927484B2 (ja) | 1989-01-25 | 1999-07-28 | 株式会社日立製作所 | プログラムの自動生成方法及び装置 |
US5119318A (en) * | 1989-04-17 | 1992-06-02 | Del Partners L.P. | Expert control system for real time management of automated factory equipment |
WO1992015945A1 (en) * | 1991-02-27 | 1992-09-17 | Digital Equipment Corporation | Symbol table for intermediate compiler language |
JPH07295612A (ja) | 1994-04-21 | 1995-11-10 | Japan Steel Works Ltd:The | 高級言語シーケンス命令プログラム生成装置および汎用シーケンサ |
US5790874A (en) * | 1994-09-30 | 1998-08-04 | Kabushiki Kaisha Toshiba | Information processing apparatus for reducing power consumption by minimizing hamming distance between consecutive instruction |
JP3422124B2 (ja) * | 1995-03-30 | 2003-06-30 | マツダ株式会社 | プログラム作成装置 |
US6085156A (en) * | 1998-03-20 | 2000-07-04 | National Instruments Corporation | Instrumentation system and method having instrument interchangeability |
US6405145B1 (en) * | 1998-03-20 | 2002-06-11 | National Instruments Corporation | Instrumentation system and method which performs instrument interchangeability checking |
US5963726A (en) * | 1998-03-20 | 1999-10-05 | National Instruments Corporation | Instrumentation system and method including an improved driver software architecture |
US6198480B1 (en) * | 1998-10-07 | 2001-03-06 | Wonderware Corporation | Object-oriented tag browser |
JP2001282574A (ja) | 2000-03-30 | 2001-10-12 | Oki Electric Ind Co Ltd | 処理時間情報を含む図式表現プログラムの表現方法 |
US8302072B2 (en) * | 2000-06-05 | 2012-10-30 | National Instruments Corporation | System and method for programmatically generating a graphical program based on a sequence of motion control, machine vision, and data acquisition (DAQ) operations |
JP2002091512A (ja) | 2000-09-12 | 2002-03-29 | Meidensha Corp | シーケンサのプログラミング支援装置 |
JP2002099312A (ja) | 2000-09-22 | 2002-04-05 | Mitsubishi Electric Corp | プログラマブルコントローラおよび制御プログラム開発支援装置 |
US7213207B2 (en) * | 2000-12-20 | 2007-05-01 | National Instruments Corporation | System and method for accessing registers of a hardware device in a graphical program |
US8522196B1 (en) * | 2001-10-25 | 2013-08-27 | The Mathworks, Inc. | Traceability in a modeling environment |
US8104017B2 (en) * | 2001-10-25 | 2012-01-24 | The Mathworks, Inc. | Traceability in a modeling environment |
US20030182601A1 (en) * | 2002-03-19 | 2003-09-25 | Scott Richardson | System and method for integrating hardware switching operations into test executive software |
JP3912278B2 (ja) * | 2002-12-20 | 2007-05-09 | 株式会社日立製作所 | 組込みコントローラ及び組込みコントローラ開発ツール |
WO2004081788A1 (ja) * | 2003-03-10 | 2004-09-23 | Catena Corporation | Lyee指向ソフトウェアに関する静的分析方法 |
US20050086635A1 (en) * | 2003-10-20 | 2005-04-21 | Pegasus Technologies, Inc. | Visual programming system and method |
JP4254954B2 (ja) * | 2004-03-29 | 2009-04-15 | 独立行政法人科学技術振興機構 | データ処理装置 |
JP4388427B2 (ja) * | 2004-07-02 | 2009-12-24 | オークマ株式会社 | スクリプト言語で記述されたプログラムを呼出し可能な数値制御装置 |
JP4438552B2 (ja) * | 2004-07-29 | 2010-03-24 | 株式会社ジェイテクト | 安全plc、シーケンスプログラム作成支援ソフトウェア及びシーケンスプログラムの判定方法 |
GB0418066D0 (en) * | 2004-08-13 | 2004-09-15 | Ibm | A prioritization system |
CN100507775C (zh) * | 2006-03-13 | 2009-07-01 | 富士电机系统株式会社 | 可编程控制器的编程设备 |
JP4494361B2 (ja) * | 2006-03-31 | 2010-06-30 | 三菱電機株式会社 | ラダープログラム最適化装置および最適化プログラム |
US7954059B2 (en) * | 2006-07-24 | 2011-05-31 | National Instruments Corporation | Automatic conversion of text-based code having function overloading and dynamic types into a graphical program for compiled execution |
US7975233B2 (en) * | 2006-07-24 | 2011-07-05 | National Instruments Corporation | Automatic conversion of a textual language into a graphical program representation |
US20090308734A1 (en) * | 2008-06-17 | 2009-12-17 | Schneider Automation Inc. | Apparatus and Method for Wafer Level Arc Detection |
KR100952557B1 (ko) * | 2008-06-19 | 2010-04-12 | 한국전력공사 | 발전소용 시뮬레이터 시스템의 화면정보 제어, 저장, 복원장치 및 방법 |
CN101364098B (zh) * | 2008-09-12 | 2010-07-28 | 南京航空航天大学 | 一种将梯形图转换为指令表程序及解释执行的方法与系统 |
US8464204B1 (en) * | 2008-10-06 | 2013-06-11 | The Mathworks, Inc. | Verification of computer-executable code generated from a model |
CN101859135B (zh) * | 2009-04-07 | 2012-07-18 | 西门子(中国)有限公司 | 对分布式自动化系统进行控制的方法和装置 |
US8055816B2 (en) * | 2009-04-09 | 2011-11-08 | Micron Technology, Inc. | Memory controllers, memory systems, solid state drives and methods for processing a number of commands |
JP5655448B2 (ja) | 2010-09-09 | 2015-01-21 | 富士電機株式会社 | Plcシステム、その開発支援装置 |
JP2012083934A (ja) | 2010-10-12 | 2012-04-26 | Mitsubishi Electric Corp | スキャンタイム見積り装置、スキャンタイム見積りプログラム及び記録媒体 |
JP2012118715A (ja) | 2010-11-30 | 2012-06-21 | Fuji Electric Co Ltd | Plcシステム、その開発支援装置、プログラム |
JP2012145987A (ja) | 2011-01-07 | 2012-08-02 | Hitachi Ltd | ソフトウェア性能問題指摘方法 |
JP5252014B2 (ja) * | 2011-03-15 | 2013-07-31 | オムロン株式会社 | 制御装置、制御システム、ツール装置および収集指示プログラム |
JP4905597B1 (ja) * | 2011-03-15 | 2012-03-28 | オムロン株式会社 | コントローラサポート装置、その装置において実行されるためのコントローラサポートプログラム、およびそのプログラムを格納する記録媒体 |
US8819499B2 (en) * | 2011-06-09 | 2014-08-26 | At&T Mobility Ii Llc | Sending network reject/error codes from a terminal adaptor to terminal equipment through an at command interface |
JP5867088B2 (ja) | 2012-01-05 | 2016-02-24 | 富士電機株式会社 | 組込み機器用ソフトウェア作成支援装置およびプログラム |
JP5942446B2 (ja) * | 2012-02-01 | 2016-06-29 | オムロン株式会社 | サポート装置およびサポートプログラム |
CN103885376A (zh) * | 2012-12-19 | 2014-06-25 | 施耐德电器工业公司 | 可编程逻辑控制器及其事件驱动编程方法 |
JP6167532B2 (ja) * | 2013-01-25 | 2017-07-26 | オムロン株式会社 | 制御装置および制御装置の動作方法 |
DE112013005628B4 (de) * | 2013-01-30 | 2018-06-28 | Mitsubishi Electric Corporation | Numerische Steuervorrichtung |
EP2781977B1 (en) * | 2013-03-20 | 2016-10-12 | Siemens Aktiengesellschaft | Method and system for managing distributed computing in automation systems |
WO2014188492A1 (ja) * | 2013-05-20 | 2014-11-27 | 三菱電機株式会社 | 監視制御装置 |
DE112013007618T5 (de) * | 2013-11-20 | 2016-08-04 | Mitsubishi Electric Corporation | Ablaufprogrammerstellungshilfsvorrichtung |
CN103941627B (zh) * | 2014-01-08 | 2017-09-08 | 东南大学 | 一种基于plc编程中sfc到梯形图的转换方法 |
JP6595181B2 (ja) * | 2014-01-09 | 2019-10-23 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 照明制御システムに関連した店舗業務のための情報表示方法、照明制御方法 |
JP5701458B1 (ja) * | 2014-02-12 | 2015-04-15 | 三菱電機株式会社 | 作画装置および制御システム |
CN103760965B (zh) | 2014-02-21 | 2016-08-17 | 中南大学 | 一种能量受限嵌入式系统的算法源程序节能优化方法 |
US20150332167A1 (en) * | 2014-05-13 | 2015-11-19 | Tokyo Electron Limited | System and method for modeling and/or analyzing manufacturing processes |
TW201606644A (zh) * | 2014-08-05 | 2016-02-16 | 拓連科技股份有限公司 | 具有自動調整功能之程式產生方法及系統,及其電腦程式產品 |
US10073707B2 (en) * | 2015-03-23 | 2018-09-11 | n.io Innovations, LLC | System and method for configuring a platform instance at runtime |
WO2016209221A1 (en) * | 2015-06-24 | 2016-12-29 | Siemens Aktiengesellschaft | Control contextualization and reasoning about control |
US10552450B2 (en) * | 2016-08-05 | 2020-02-04 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and low latency graph queries |
US10394891B2 (en) * | 2016-08-05 | 2019-08-27 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by efficient throughput edge addition |
US10380188B2 (en) * | 2016-08-05 | 2019-08-13 | International Business Machines Corporation | Distributed graph databases that facilitate streaming data insertion and queries by reducing number of messages required to add a new edge by employing asynchronous communication |
US10303582B2 (en) * | 2016-10-25 | 2019-05-28 | International Business Machines Corporation | Facilitating debugging serverless applications via graph rewriting |
CN109478051A (zh) | 2017-04-17 | 2019-03-15 | 三菱电机株式会社 | 程序创建装置 |
-
2016
- 2016-08-30 DE DE112016007069.1T patent/DE112016007069T5/de not_active Withdrawn
- 2016-08-30 WO PCT/JP2016/075360 patent/WO2018042520A1/ja active Application Filing
- 2016-08-30 JP JP2018536560A patent/JP6532610B2/ja not_active Expired - Fee Related
- 2016-08-30 US US16/315,109 patent/US10990073B2/en active Active
- 2016-08-30 CN CN201680088675.3A patent/CN109643093A/zh active Pending
- 2016-08-30 KR KR1020197001430A patent/KR102041772B1/ko active IP Right Grant
- 2016-10-25 TW TW105134396A patent/TWI621066B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JPWO2018042520A1 (ja) | 2018-12-06 |
US10990073B2 (en) | 2021-04-27 |
WO2018042520A1 (ja) | 2018-03-08 |
CN109643093A (zh) | 2019-04-16 |
TW201807569A (zh) | 2018-03-01 |
TWI621066B (zh) | 2018-04-11 |
KR20190011810A (ko) | 2019-02-07 |
KR102041772B1 (ko) | 2019-11-07 |
US20200012250A1 (en) | 2020-01-09 |
DE112016007069T5 (de) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6532610B2 (ja) | プログラム編集装置、プログラム編集方法及びプログラム編集プログラム | |
CN111626430B (zh) | 一种数据处理方法及相关产品 | |
US10503634B1 (en) | Semantic comparison of computer compiler traces | |
US9513922B2 (en) | Computer system and a method for generating an optimized program code | |
JP4822817B2 (ja) | コンパイルシステム | |
EP2677424B1 (en) | OpenCL compilation | |
US9081586B2 (en) | Systems and methods for customizing optimization/transformation/ processing strategies | |
US20160139897A1 (en) | Loop vectorization methods and apparatus | |
US9977663B2 (en) | Technologies for optimizing sparse matrix code with field-programmable gate arrays | |
US8448151B2 (en) | Method for binarizing initial script on operating system and operating method of binary script | |
US20070028197A1 (en) | Method and apparatus for auto-generation of shift register file for high-level synthesis compiler | |
US5964861A (en) | Method for writing a program to control processors using any instructions selected from original instructions and defining the instructions used as a new instruction set | |
CN114764296A (zh) | 机器学习模型训练方法、装置、电子设备及存储介质 | |
JP6443125B2 (ja) | コンパイラプログラム、コンピュータプログラム及びコンパイラ装置 | |
US10949209B2 (en) | Techniques for scheduling instructions in compiling source code | |
KR102179385B1 (ko) | 명령어를 실행하는 방법 및 프로세서, 명령어를 부호화하는 방법 및 장치 및 기록매체 | |
Gad | NumPyCNNAndroid: A Library for Straightforward Implementation of Convolutional Neural Networks for Android Devices | |
US9304770B2 (en) | Method and system adapted for converting software constructs into resources for implementation by a dynamically reconfigurable processor | |
CN116719530A (zh) | 提高代码性能方法、装置、计算机设备及存储介质 | |
Κορομπίλης | Design of a CPU using VHDL | |
JP2021093012A (ja) | コンパイルプログラム、および情報処理装置 | |
US9158544B2 (en) | System and method for performing a branch object conversion to program configurable logic circuitry | |
CN118034660A (zh) | 针对大语言模型融合算子的图编译方法、装置及存储介质 | |
KR20210033258A (ko) | 시퀀스 처리 방법 및 장치 | |
JP2019191796A (ja) | 高位合成方法、高位合成プログラム、高位合成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180913 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20180913 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20181128 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181206 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181211 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190128 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20190423 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190521 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6532610 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |