JP7317269B2 - 通信周期決定装置、通信周期決定方法および通信周期決定プログラム - Google Patents
通信周期決定装置、通信周期決定方法および通信周期決定プログラム Download PDFInfo
- Publication number
- JP7317269B2 JP7317269B2 JP2023531157A JP2023531157A JP7317269B2 JP 7317269 B2 JP7317269 B2 JP 7317269B2 JP 2023531157 A JP2023531157 A JP 2023531157A JP 2023531157 A JP2023531157 A JP 2023531157A JP 7317269 B2 JP7317269 B2 JP 7317269B2
- Authority
- JP
- Japan
- Prior art keywords
- control program
- variable
- communication cycle
- input
- branch
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims description 186
- 238000000034 method Methods 0.000 title claims description 79
- 238000000605 extraction Methods 0.000 claims description 26
- 239000000284 extract Substances 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims 1
- 230000000737 periodic effect Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 239000013589 supplement Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001502 supplementing effect Effects 0.000 description 2
- 240000008168 Ficus benjamina Species 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- 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
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Automation & Control Theory (AREA)
- Programmable Controllers (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
FAはファクトリーオートメーションの略称である。
リモート入力機器は、スイッチの状態またはセンサの状態を制御装置に入力する。
リモート出力機器は、制御機器の出力にしたがってソレノイドおよびランプを駆動する。
以下、差し支えない場合はリモート入力機器とリモート出力機器をまとめてリモート入出力機器と呼ぶ。
設定装置は、必要に応じ制御装置に接続される。
制御プログラムには、処理の対象、処理結果の出力先および処理の内容を指定する命令列が並ぶ。
制御機器には、制御プログラムとともにI/O変数リストが与えられる。I/Oは入出力の略称である。
I/O変数は制御プログラム内で使用される変数であり、I/O変数はリモート入出力機器と対応する。
I/O変数リストには、I/O変数ごとに、I/O変数と、対応するリモート入出力機器と、が記載される。
時分割通信技術を用いた定周期通信機能では、ネットワークの通信帯域が時分割され、あらかじめ決められた時間長を有する通信周期の時間枠が設けられ、あらかじめ決められた内容の通信が行われる。
定周期通信が行われないときは、他の種類の通信がネットワークを利用できる。
I/O変数の値は、定周期通信を用いて更新される。
定周期通信では、リモート入力機器から取得された入力データが制御装置の内部の一時記憶装置に保存され、その入力データの値が制御プログラムによってI/O変数の値として参照される。また、制御プログラムによって操作されたI/O変数の値は、一時記憶装置に保存され、定周期通信によってリモート出力機器へ送信される。
このような場合、制御に不具合は発生しないが、ネットワーク帯域を空費することになる。
このような場合、制御に不具合が発生する。
従来技術では、制御プログラムの実行周期が通信周期に合わせて設定されていた。
そのサーボシステムでは、上位装置と複数のサーボアンプが同期型シリアル通信手段で接続される。同期型シリアル通信手段では、一定の通信周期で動作指令などについてデータ交換が行われる。上位装置は制御装置の役割を果たす。そして、上位装置において実行される演算の周期が、通信周期の1/n倍(nは整数)に同期される。
制御プログラムには、制御プログラムが実行されるたびに実行される処理と、制御プログラムが何回か実行されるうちの1回のみ実行される処理と、が含まれる場合がある。
制御プログラム内のI/O変数に対する処理の実行頻度に応じて、I/O変数に対応する機器に対して適切な通信周期が設定されれば、定周期通信でやり取りされるデータ量が削減される。
しかし、I/O変数について処理の実行頻度を調べて、I/O変数に対応する機器に対して適切な通信周期を決定することは、ユーザにとって負担が大きい。
1つ以上の対象機器を制御するための制御プログラムから、前記制御プログラムの実行回数をカウントするためのカウンタ変数を見つけるカウンタ変数検索部と、
前記制御プログラムから、前記カウンタ変数が被除数であり定数が除数である剰余演算を見つける剰余演算検索部と、
前記制御プログラムから、前記剰余演算の剰余と定数の一致を分岐条件とする条件分岐命令を見つける分岐命令検索部と、
前記条件分岐命令の分岐先ブロックから入出力変数を抽出する入出力変数抽出部と、
前記1つ以上の対象機器のうち抽出された入出力変数の値が入出力される対象機器を特定する対象機器特定部と、
抽出された入出力変数が1つの分岐先ブロックのみでアクセスされる場合、前記制御プログラムの実行周期に前記剰余演算の除数を掛けて得られる時間を、特定された対象機器の通信周期に決定する通信周期決定部と、を備える。
制御システム200について、図1から図20に基づいて説明する。
図1に基づいて、制御システム200の構成を説明する。
制御システム200の具体例は、ファクトリーオートメーション(FA)である。
設定装置230と制御装置210は、ネットワーク201で接続される。
制御装置210と1つ以上の対象機器220は、ネットワーク202で接続される。ネットワーク202は、時分割方式を採用する通信回線である。制御装置210と1つ以上の対象機器220との間では、リアルタイム性が保証される。図1において、制御装置210と2つの対象機器(220A、220B)がデイジーチェーン型で接続されているが、制御装置210と1つ以上の対象機器220は、ツリー型またはスター型などの他の形態で接続されても構わない。
1つの対象機器220には、センサ221、スイッチ222、ランプ223およびソレノイド224などが接続される。
制御装置210は、動作パラメータにしたがって制御プログラムを実行することによって、1つ以上の対象機器220を制御する。
対象機器220Aは、センサ221とスイッチ222とのそれぞれから状態を示す状態データを取得し、取得した状態データを制御装置210に入力する。
対象機器220Bは、制御装置210から入力される指令データにしたがってランプ223とソレノイド224とのそれぞれを駆動する。
通信周期決定装置100は、1つ以上の対象機器220のそれぞれの通信周期を決定する。通信周期は、動作パラメータの一つである。
通信周期決定装置100は、プロセッサ101とメモリ102と補助記憶装置103と通信装置104と入出力インタフェース105といったハードウェアを備えるコンピュータである。これらのハードウェアは、信号線を介して互いに接続されている。
ICは、Integrated Circuitの略称である。
CPUは、Central Processing Unitの略称である。
RAMは、Random Access Memoryの略称である。
ROMは、Read Only Memoryの略称である。
HDDは、Hard Disk Driveの略称である。
NICは、Network Interface Cardの略称である。
USBは、Universal Serial Busの略称である。
補助記憶装置103には、さらに、OSが記憶されている。OSの少なくとも一部は、メモリ102にロードされて、プロセッサ101によって実行される。
プロセッサ101は、OSを実行しながら、通信周期決定プログラムを実行する。
OSは、Operating Systemの略称である。
メモリ102は記憶部190として機能する。但し、補助記憶装置103、プロセッサ101内のレジスタおよびプロセッサ101内のキャッシュメモリなどの記憶装置が、メモリ102の代わりに、又は、メモリ102と共に、記憶部190として機能してもよい。
通信周期決定装置100の動作の手順は通信周期決定方法に相当する。また、通信周期決定装置100の動作の手順は通信周期決定プログラムによる処理の手順に相当する。
ステップS110において、受付部110は、制御プログラム191と入出力変数リスト192とを受け付ける。
例えば、ユーザが制御プログラム191を通信周期決定装置100に入力し、受付部110が入力された制御プログラム191を受け付ける。
(1)制御プログラム191は、文法および規約に違反せずに記述されている。
(2)制御プログラム191の実行周期は、基本となる通信周期と等しい。基本となる通信周期を「定周期通信周期」と称し、「T」で表す。
(3)制御プログラム191は、内部に無限ループを含まない。この特徴(3)は特徴(2)に関連する。
(4)制御プログラム191において、分岐は「分岐命令」と「開始命令」と「終了命令」とで構成される。分岐命令は分岐条件の成否を判定する命令である。開始命令は分岐先ブロックの開始を意味する。終了命令は分岐先ブロックの終了を意味する。
(5)制御プログラム191には、1つ以上の命令がシーケンシャルに記述されている。このため、「n番目の命令」は制御プログラム191の中の一か所を一意に特定する。「n」は正の整数である。
入出力変数に対応する対象機器220は、入出力変数の値が入出力される。
制御プログラム191には、処理の対象、処理結果の出力先および処理の内容を指定する命令列が並んでいる。
入出力変数リスト192は、入出力変数ごとに入出力変数と対象機器220と変数種別との組を示している。
対象機器220の欄は、対象機器220の名前の他に、入出力変数の値が入力される入出力インタフェースの名前を示している。
変数種別は、入出力変数の種別(入力または出力)である。
カウンタ変数は、制御プログラム191の実行回数をカウントするための変数である。
ステップS1211において、カウンタ変数検索部121は、一時変数iに初期値1を設定し、一時変数fに初期値0を設定する。
分岐の開始命令および分岐の終了命令は、1回だけ実行される命令ではない。
そして、カウンタ変数検索部121は、i番目の命令が分岐の開始命令であるか判定する。つまり、カウンタ変数検索部121は、i番目の命令が分岐先ブロックの開始を意味するか判定する。
i番目の命令が分岐の開始命令である場合、処理はステップS1213に進む。
i番目の命令が分岐の開始命令でない場合、処理はステップS1214に進む。
ステップS1213の後、処理はステップS1214に進む。
i番目の命令が分岐の終了命令である場合、処理はステップS1215に進む。
i番目の命令が分岐の終了命令でない場合、処理はステップS1216に進む。
ステップS1215の後、処理はステップS1216に進む。
一時変数fの値が0である場合、処理はステップS1217に進む。
一時変数fの値が0でない場合、処理はステップS1241に進む。
i番目の命令が加算命令である場合、処理はステップS1218に進む。
i番目の命令が加算命令でない場合、処理はステップS1241に進む。
i番目の命令が変数Xと定数の加算命令である場合、処理はステップS1221に進む。
i番目の命令が変数Xと定数の加算命令でない場合、処理はステップS1241に進む。
j番目の命令が変数Xの値を変更する場合、処理はステップS1223に進む。
j番目の命令が変数Xの値を変更しない場合、処理はステップS1224に進む。
一時変数jの値を一時変数iの値と等しい場合、処理はステップS1224に進む。
一時変数jの値を一時変数iの値と異なる場合、処理はステップS1241に進む。
j番目の命令が制御プログラム191の最後の命令である場合、処理はステップS1231に進む。
j番目の命令が制御プログラム191の最後の命令でない場合、処理はステップS1225に進む。
ステップS1225の後、処理はステップS1222に進む。
カウンタ変数リスト193は、1つ以上のカウンタ変数を示す。「D1」と「D2」とのそれぞれはカウンタ変数名である。
ステップS1241において、カウンタ変数検索部121は、i番目の命令が制御プログラム191の最後の命令であるか判定する。
i番目の命令が制御プログラム191の最後の命令である場合、処理は終了する。
i番目の命令が制御プログラム191の最後の命令でない場合、処理は1242に進む。
ステップS1242の後、処理はステップS1212に進む。
ステップS120により、カウンタ変数リスト193が得られる。
なお、制御プログラム191の実行回数をカウントするための変数があらかじめ定義されている場合、カウンタ変数検索部121は、その変数もカウンタ変数リスト193に加える。
カウンタ変数に対する剰余演算は、カウンタ変数が被除数であり定数が除数である剰余演算である。
剰余演算は、剰余を求めるための演算(命令)である。
ステップS131において、剰余演算検索部122は、一時変数iに初期値1を設定する。
そして、剰余演算検索部122は、i番目の命令が剰余演算であるか判定する。
i番目の命令が剰余演算である場合、処理はステップS133に進む。
i番目の命令が剰余演算でない場合、処理はステップS136に進む。
i番目の命令の中の除数Pが定数である場合、処理はステップS134に進む。
i番目の命令の中の除数Pが定数でない場合、処理はステップS136に進む。
つまり、剰余演算検索部122は、i番目の命令の中の被除数がカウンタ変数リスト193に示される変数であるか判定する。
i番目の命令の中の被除数がカウンタ変数である場合、処理はステップS135に進む。
i番目の命令の中の被除数がカウンタ変数でない場合、処理はステップS136に進む。
具体的には、剰余演算検索部122は、カウンタ変数(被除数)の名前と剰余変数の名前と除数と演算位置との組を剰余変数リスト194に追加する。
剰余変数は、剰余が代入される変数である。
演算位置は、制御プログラム191の中の剰余演算の位置である。一時変数iの値が演算位置として設定される。
剰余変数リスト194は、剰余演算の情報として、カウンタ変数(被除数)と剰余変数と除数と演算位置とを示している。
ステップS136において、剰余演算検索部122は、i番目の命令が制御プログラム191の最後の命令であるか判定する。
i番目の命令が制御プログラム191の最後の命令である場合、処理は終了する。
i番目の命令が制御プログラム191の最後の命令でない場合、処理はステップS137に進む。
ステップS137の後、処理はステップS132に進む。
ステップS130により、剰余変数リスト194が得られる。
剰余に対する条件分岐命令は、ステップS130で見つかった剰余演算の剰余について、剰余と定数の一致を分岐条件とする条件分岐命令である。
ステップS1411において、分岐命令検索部123は、一時変数iに初期値1を設定する。
具体的には、分岐命令検索部123は、カウンタ変数名(X)と剰余変数名(Y)と除数Pと演算位置Jとを取得する。
そして、分岐命令検索部123は、一時変数jに初期値として演算位置Jを設定する。
そして、分岐命令検索部123は、j番目の命令が条件分岐命令であるか判定する。
j番目の命令が条件分岐命令である場合、処理はステップS1414に進む。
j番目の命令が条件分岐命令でない場合、処理はステップS1451に進む。
j番目の命令の中の分岐条件が剰余変数Yと定数Nとの一致である場合、処理はステップS1421に進む。
j番目の命令の中の分岐条件が剰余変数Yと定数Nとの一致でない場合、処理はステップS1451に進む。
そして、分岐命令検索部123は、j番目の命令がステップS1413で見つけた条件分岐命令に対する開始命令であるか判定する。
つまり、分岐命令検索部123は、j番目の命令が分岐先ブロックの開始を意味するか判定する。
j番目の命令がステップS1413で見つけた条件分岐命令に対する開始命令である場合、処理はステップS1431に進む。
j番目の命令がステップS1413で見つけた条件分岐命令に対する開始命令でない場合、処理はステップS1421に進む。
そして、分岐命令検索部123は、j番目の命令がステップS1413で見つけた条件分岐命令に対する終了命令であるか判定する。
つまり、分岐命令検索部123は、j番目の命令が分岐先ブロックの終了を意味するか判定する。
j番目の命令がステップS1413で見つけた条件分岐命令に対する終了命令である場合、処理はステップS1441に進む。
j番目の命令がステップS1413で見つけた条件分岐命令に対する終了命令でない場合、処理はステップS1432に進む。
剰余分岐ブロックは、ステップS1413で見つけた条件分岐命令に対する分岐ブロックである。
具体的には、分岐命令検索部123は、カウンタ変数(被除数)の名前Xと剰余変数の名前Yと除数Pと演算位置Jと定数Nと開始位置kと終了位置jとの組を剰余分岐ブロックリスト195に追加する。
定数Nは、比較定数と称する。
開始位置kは、制御プログラム191の中の分岐先ブロックの開始位置である。
終了位置jは、制御プログラム191の中の分岐先ブロックの終了位置である。
剰余分岐ブロックリスト195は、剰余分岐ブロックの情報として、カウンタ変数(被除数)と剰余変数と除数と演算位置と比較定数と開始位置と終了位置とを示している。
ステップS1451において、分岐命令検索部123は、一時変数jの値に1を加算する。
そして、分岐命令検索部123は、j番目の命令が制御プログラム191の最後の命令であるか判定する。
j番目の命令が制御プログラム191の最後の命令である場合、処理はステップS1453に進む。
j番目の命令が制御プログラム191の最後の命令でない場合、処理はステップS1413に進む。
i番目の情報が剰余変数リスト194の最後の情報である場合、処理は終了する。
i番目の情報が剰余変数リスト194の最後の情報でない場合、処理はステップS1454に進む。
ステップS1454の後、処理はステップS1412に進む。
ステップS140により、剰余分岐ブロックリスト195が得られる。
このとき、入出力変数抽出部124は、分岐先ブロックにジャンプ命令があるか判定する。そして、分岐先ブロックにジャンプ命令がない場合に、入出力変数抽出部124は入出力変数を抽出する。
特定される対象機器220は、抽出された入出力変数の値が入出力される対象機器220である。
ステップS1511において、入出力変数抽出部124は、一時変数iに初期値1を設定する。
具体的には、入出力変数抽出部124は、カウンタ変数名(X)と定数Nと開始位置と終了位置とを取得する。
そして、入出力変数抽出部124は、一時変数kに開始位置を設定し、一時変数jに終了位置を設定する。
そして、入出力変数抽出部124は、k番目の命令が実行命令ジャンプを伴う命令であるか判定する。
k番目の命令が実行命令ジャンプを伴う命令である場合、処理はステップS1551に進む。
k番目の命令が実行命令ジャンプを伴う命令でない場合、処理はステップS1514に進む。
一時変数kの値が一時変数jの値と等しい場合、処理はステップS1521に進む。
一時変数kの値が一時変数jの値と異なる場合、処理はステップS1513に進む。
そして、入出力変数抽出部124は、一時変数kにi番目の開始位置を設定する。
そして、入出力変数抽出部124は、入出力変数リスト192に示される入出力変数がk番目の命令の中にオペランドとして含まれるか判定する。
入出力変数リスト192に示される入出力変数がk番目の命令の中にオペランドとして含まれる場合、処理はステップS1531に進む。
入出力変数リスト192に示される入出力変数がk番目の命令の中にオペランドとして含まれない場合、処理はステップS1541に進む。
そして、対象機器特定部125は、剰余分岐アクセス先の情報を剰余分岐アクセス先リスト196に追加する。
具体的には、対象機器特定部125は、カウンタ変数(被除数)の名前Xと剰余変数の名前Yと除数Pと演算位置Jと定数Nと開始位置kと終了位置jとアクセス先との組を剰余分岐アクセス先リスト196に追加する。
アクセス先は、k番目の命令の中の入出力変数に対応する対象機器220の名前を意味する。
剰余分岐アクセス先リスト196、剰余分岐アクセス先の情報として、カウンタ変数(被除数)と剰余変数と除数と演算位置と比較定数と開始位置と終了位置とアクセス先とを示している。
ステップS1541において、入出力変数抽出部124は、一時変数kの値に1を加算する。
一時変数kの値が一時変数jの値と等しい場合、処理はステップS1551に進む。
一時変数kの値が一時変数jの値と異なる場合、処理はステップS1522に進む。
i番目の情報が剰余分岐ブロックリスト195の最後の情報である場合、処理は終了する。
i番目の情報が剰余分岐ブロックリスト195の最後の情報でない場合、処理はステップS1552に進む。
ステップS1552の後、処理はステップS1512に進む。
ステップS150により、剰余分岐アクセス先リスト196が得られる。
このとき、通信周期決定部126は、入出力変数が1つの分岐先ブロックのみでアクセスされるか判定する。そして、入出力変数が1つの分岐先ブロックのみでアクセスされる場合、通信周期決定部126は、制御プログラム191の実行周期に剰余演算の除数を掛けて得られる時間を、入出力変数に対応する対象機器220の通信周期に決定する。また、通信周期決定部126は、残りの対象機器220の通信周期を制御プログラム191の実行周期に決定する。
通信周期決定部126は、剰余分岐アクセス先リスト196の中の1つの情報にのみ示されている対象機器220を特定し、特定された対象機器220の情報から除数Pを取得する。そして、通信周期決定部126は、特定された対象機器220の定周期通信周期を「T×P」の値に決定する。
通信周期決定部126は、残りの対象機器220の定周期通信周期を「T」に決定する。
実施の形態1により、制御プログラム191がP回実行されるうちに1回アクセスされる対象機器220に対して適切な通信周期を求めることができる。
図17および図18に基づいて、定周期通信を説明する。
FAネットワークには、時分割通信技術を用いた定周期通信機能を持つものがある。
時分割通信技術を用いた定周期通信機能(図17を参照)では、ネットワークの通信帯域が時分割され、あらかじめ決められた時間長を有する通信周期の時間枠が設けられ、あらかじめ決められた内容の通信が行われる。
定周期通信が行われないときは、他の種類の通信がネットワークを利用できる。
入出力変数の値は、定周期通信を用いて更新される。
定周期通信では、リモート入力機器から取得された入力データが制御装置の内部のメモリに保存され、その入力データの値が制御プログラムによって入出力変数の値として参照される。また、制御プログラムによって操作された入出力変数の値は、メモリに保存され、定周期通信によってリモート出力機器へ送信される。
制御プログラムは一般に一定周期で反復して実行される。
制御プログラムには、制御プログラムが実行されるたびに実行される処理と、制御プログラムが何回か実行されるうちの1回のみ実行される処理と、が含まれる場合がある。
例えば、制御プログラムが実行されると処理Aは必ず実行される。これに対し、処理B(1)は、変数nの値をPで割った際の剰余が1であるときにのみ実行される。また、処理B(2)は、変数nの値をPで割った際の剰余が2であるときにのみ実行される。また、処理B(P-1)は、変数nの値をPで割った際の剰余が(P-1)であるときにのみ実行される。また、処理B(P)は、変数nの値をPで割った際の剰余が0であるときにのみ実行される。
変数nの値は、制御プログラムが実行されるたびに1ずつ加算される。その場合、処理B(1)~B(P)は、それぞれ制御プログラムがP回実行されるごとに1回実行されることになる。
リモート入出力機器Aおよびリモート入出力機器B(1)~B(P)があると仮定する。処理Aはリモート入出力機器Aの入出力変数を処理する。同様に、処理B(1)はリモート入出力機器B1の入出力変数を処理し、処理B(2)はリモート入出力機器B(2)の入出力変数を処理し、処理B(P)はリモート入出力機器B(P)の入出力変数を処理する。
この場合、リモート入出力機器Aの入出力変数は、処理Aによって参照または操作される。そして、リモート入出力機器Aの入出力変数は、制御プログラムが実行されるたびに更新される必要がある。
他方、リモート入出力機器B(1)~B(P)の入出力変数は、処理B(1)~B(P)によって参照または操作される。そして、リモート入出力機器B(1)~B(P)の入出力変数は、制御プログラムがP回実行されるごとに更新される必要がある。
すなわち、リモート入出力機器B(1)~B(P)について適切な定周期通信の周期はリモート入出力機器Aについて適切な定周期通信の周期のP倍である、といえる。
よって、リモート入出力機器B(1)~B(P)の通信周期がリモート入出力機器Aの通信周期のP倍に設定されれば、定周期通信でやり取りされるデータ量が削減される。
剰余分岐アクセス先リスト196の中の複数の情報に示される対象機器220の定周期通信周期を定周期通信周期Tよりも長くする形態について、主に実施の形態1と異なる点を図21に基づいて説明する。
制御システム200の構成および通信周期決定装置100の構成は、実施の形態1における構成と同じである。
図21に基づいて、通信周期決定方法を説明する。
ステップS210からステップS250は、実施の形態1におけるステップS110からステップS150と同じである。
ステップS260は、実施の形態1におけるステップS160と一部異なる。
ステップS270は、実施の形態1におけるステップS170と同じである。
以下に、ステップS260を説明する。
このとき、通信周期決定部126は、入出力変数が2つ以上の分岐先ブロックでアクセスされるか判定する。そして、入出力変数が2つ以上の分岐先ブロックでアクセスされる場合、通信周期決定部126は、制御プログラム191の実行周期と剰余演算の除数と2つ以上の分岐先ブロックに対応する2つ以上の分岐条件の2つ以上の定数とに基づいて、入出力変数に対応する対象機器220の通信周期を決定する。
通信周期決定部126は、対象機器(1)の情報から除数Pを取得する。
通信周期決定部126は、対象機器(1)の定周期通信周期を「T×P」の値に決定する。
通信周期決定部126は、対象機器(2)の複数の情報に示される複数の剰余変数が同一であるか判定する。対象機器(2)の複数の情報に示される複数の剰余変数が同一である場合、対象機器(2)を対象機器(2A)と称する。対象機器(2A)について、比較定数Nがk個あり、除数が「P」である。
通信周期決定部126は、小さい順に並べられたk個の比較定数(N1,N2,・・・,Nk)に基づく数列Sの要素Siに対して数列Rの全ての要素Riが正の整数であるか判定する。数列Rの全ての要素Riが正の整数である場合、対象機器(2A)を対象機器(2B)と称する。
通信周期決定部126は、対象機器(2B)の定周期通信周期CCを以下のように決定する。
前述の実施の形態1では、剰余分岐アクセス先リスト196の1行のみに記載されている対象機器220の定周期通信周期が決定された。
しかし、剰余分岐アクセス先リスト196の複数行に記載されている対象機器220に対して定周期通信周期を制御プログラム191の実行周期より長くすることができる場合がある。
このような場合に対して、実施の形態2により、剰余分岐アクセス先リスト196の複数行に記載されている対象機器220に対して制御プログラム191の実行周期より長い定周期通信周期を決定することができる。
定数が設定される変数を考慮する形態について、主に実施の形態1および実施の形態2と異なる点を図22から図24に基づいて説明する。
制御システム200の構成は、実施の形態1における構成と同じである。
通信周期決定装置100は、さらに、編集部140を備える。
通信周期決定プログラムは、さらに、編集部140としてコンピュータを機能させる。
図23に基づいて、通信周期決定方法を説明する。
ステップS310において、受付部110は、制御プログラム191と入出力変数リスト192との他に、指定変数リスト197を受け付ける。
指定変数リスト197は、指定変数のリストである。
指定変数は、定数が設定される変数であり、ユーザによって指定される。
指定変数リスト197は、指定変数ごとに指定変数と定数とを示している。
ステップS320において、編集部140は、指定変数リスト197に基づいて、制御プログラム191を編集する。
具体的には、編集部140は、制御プログラム191から各指定変数を見つけ、制御プログラム191の中の各指定変数を定数に置き換える。
前述の実施の形態1では、命令のオペランドおよび比較の対象が定数であることを条件とする処理があった。
しかし、定数に相当する役割を果たす値をあえて変数にして制御プログラム191が作成され、その変数の値が制御プログラム191の冒頭または別途の定義によって特定の値に固定されることがある。
このような場合に対して、実施の形態3により、ユーザが定数として扱われるべき値が代入されている変数を個別に指定した場合に、それらの変数を定数と同様に扱うことができる。
分岐結果が固定される分岐命令を考慮する形態について、主に実施の形態1および実施の形態2と異なる点を図25から図28に基づいて説明する。
制御システム200の構成は、実施の形態1における構成と同じである。
通信周期決定装置100は、さらに、編集部150を備える。
通信周期決定プログラムは、さらに、編集部150としてコンピュータを機能させる。
図26に基づいて、通信周期決定方法を説明する。
ステップS410において、制御装置210は、制御プログラム191と入出力変数リスト192との他に、指定分岐リスト198を受け付ける。
指定分岐リスト198は、指定分岐命令のリストである。
指定分岐命令は、分岐結果が固定される分岐命令であり、ユーザによって指定される。
指定分岐リスト198は、指定分岐命令ごとに分岐命令場所と固定分岐結果とを示す。
分岐命令場所は、制御プログラム191の中の指定分岐命令の場所である。
固定分岐結果は、固定される分岐結果である。
ステップS420において、編集部150は、指定分岐リスト198に基づいて、制御プログラム191を編集する。
具体的には、編集部150は、制御プログラム191から各指定分岐命令を見つけ、制御プログラム191の中の各指定分岐命令の分岐結果を固定して無効化する。
図28と図29とのそれぞれに、制御プログラムのフローチャートの例を示す。
図28において、制御プログラムは非定常状態に備えた分岐命令を持ち、非常停止スイッチがOFFにならない限り、制御処理が実行されない。
このような制御プログラムには1回だけ実行される命令がなく、カウンタ変数リストが空になる。カウンタ変数リストが空になる場合、実施の形態は適用できない。
このような事象に対して、実施の形態4により、ユーザによって指定された分岐命令の分岐結果を1つに固定する。その結果、指定された分岐命令が実質的に無効化される。
図28において「非常停止スイッチがOFFになっているか?」という分岐命令の分岐結果を「No」に固定することにより、制御プログラムを図29のように表すことが実質的に可能になる。
実施の形態4は実施の形態3と組み合わせてもよい。つまり、通信周期決定装置100が編集部140と編集部150とを備え、制御プログラム191が編集部140と編集部150とによって編集されてもよい。
図30に基づいて、通信周期決定装置100のハードウェア構成を説明する。
通信周期決定装置100は処理回路109を備える。
処理回路109は、受付部110と決定部120と設定部130と編集部140と編集部150とを実現するハードウェアである。
処理回路109は、専用のハードウェアであってもよいし、メモリ102に格納されるプログラムを実行するプロセッサ101であってもよい。
ASICは、Application Specific Integrated Circuitの略称である。
FPGAは、Field Programmable Gate Arrayの略称である。
通信周期決定装置100の要素である「部」は、「処理」、「工程」、「回路」または「サーキットリ」と読み替えてもよい。
Claims (10)
- 1つ以上の対象機器を制御するための制御プログラムから、前記制御プログラムの実行回数をカウントするためのカウンタ変数を見つけるカウンタ変数検索部と、
前記制御プログラムから、前記カウンタ変数が被除数であり定数が除数である剰余演算を見つける剰余演算検索部と、
前記制御プログラムから、前記剰余演算の剰余と定数の一致を分岐条件とする条件分岐命令を見つける分岐命令検索部と、
前記条件分岐命令の分岐先ブロックから入出力変数を抽出する入出力変数抽出部と、
前記1つ以上の対象機器のうち抽出された入出力変数の値が入出力される対象機器を特定する対象機器特定部と、
抽出された入出力変数が1つの分岐先ブロックのみでアクセスされる場合、前記制御プログラムの実行周期に前記剰余演算の除数を掛けて得られる時間を、特定された対象機器の通信周期に決定する通信周期決定部と、
を備える通信周期決定装置。 - 前記通信周期決定部は、前記1つ以上の対象機器のうちの残りの対象機器の通信周期を前記実行周期に決定する
請求項1に記載の通信周期決定装置。 - 前記入出力変数抽出部は、前記分岐先ブロックにジャンプ命令があるか判定し、前記分岐先ブロックに前記ジャンプ命令がない場合に前記入出力変数を抽出する
請求項1または請求項2に記載の通信周期決定装置。 - 前記通信周期決定部は、抽出された入出力変数が2つ以上の分岐先ブロックでアクセスされる場合、前記実行周期と前記除数と前記2つ以上の分岐先ブロックに対応する2つ以上の分岐条件の2つ以上の定数とに基づいて、特定された対象機器の通信周期を決定する
請求項1から請求項3のいずれか1項に記載の通信周期決定装置。 - 定数が設定される変数として指定される指定変数を前記制御プログラムから見つけ、前記制御プログラムの中の前記指定変数を前記指定変数に設定される前記定数に置き換えることによって前記制御プログラムを編集する編集部を備え、
編集済みの前記制御プログラムを使用して、前記特定された対象機器の通信周期を決定する
請求項1から請求項5のいずれか1項に記載の通信周期決定装置。 - 分岐結果が固定される分岐命令として指定される指定分岐命令を前記制御プログラムから見つけ、前記制御プログラムの中の前記指定分岐命令の分岐結果が固定されるように前記制御プログラムを編集する編集部を備え、
編集済みの前記制御プログラムを使用して、前記特定された対象機器の通信周期を決定する
請求項1から請求項5のいずれか1項に記載の通信周期決定装置。 - 定数が設定される変数として指定される指定変数を前記制御プログラムから見つけ、前記制御プログラムの中の前記指定変数を前記指定変数に設定される前記定数に置き換えることによって前記制御プログラムを編集する第1編集部と、
分岐結果が固定される分岐命令として指定される指定分岐命令を前記制御プログラムから見つけ、前記制御プログラムの中の前記指定分岐命令の分岐結果が固定されるように前記制御プログラムを編集する第2編集部と、
を備え、
編集済みの前記制御プログラムを使用して、前記特定された対象機器の通信周期を決定する
請求項1から請求項5のいずれか1項に記載の通信周期決定装置。 - 1つ以上の対象機器を制御するための制御プログラムから、前記制御プログラムの実行回数をカウントするためのカウンタ変数を見つけ、
前記制御プログラムから、前記カウンタ変数が被除数であり定数が除数である剰余演算を見つけ、
前記制御プログラムから、前記剰余演算の剰余と定数の一致を分岐条件とする条件分岐命令を見つけ、
前記条件分岐命令の分岐先ブロックから入出力変数を抽出し、
前記1つ以上の対象機器のうち抽出された入出力変数の値が入出力される対象機器を特定し、
抽出された入出力変数が1つの分岐先ブロックのみでアクセスされる場合、前記制御プログラムの実行周期に前記剰余演算の除数を掛けて得られる時間を、特定された対象機器の通信周期に決定する
通信周期決定方法。 - 1つ以上の対象機器を制御するための制御プログラムから、前記制御プログラムの実行回数をカウントするためのカウンタ変数を見つけるカウンタ変数検索処理と、
前記制御プログラムから、前記カウンタ変数が被除数であり定数が除数である剰余演算を見つける剰余演算検索処理と、
前記制御プログラムから、前記剰余演算の剰余と定数の一致を分岐条件とする条件分岐命令を見つける分岐命令検索処理と、
前記条件分岐命令の分岐先ブロックから入出力変数を抽出する入出力変数抽出処理と、
前記1つ以上の対象機器のうち抽出された入出力変数の値が入出力される対象機器を特定する対象機器特定処理と、
抽出された入出力変数が1つの分岐先ブロックのみでアクセスされる場合、前記制御プログラムの実行周期に前記剰余演算の除数を掛けて得られる時間を、特定された対象機器の通信周期に決定する通信周期決定処理と、
をコンピュータに実行させるための通信周期決定プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2021/024381 WO2023275942A1 (ja) | 2021-06-28 | 2021-06-28 | 通信周期決定装置、通信周期決定方法および通信周期決定プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2023275942A1 JPWO2023275942A1 (ja) | 2023-01-05 |
JP7317269B2 true JP7317269B2 (ja) | 2023-07-28 |
Family
ID=84691023
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023531157A Active JP7317269B2 (ja) | 2021-06-28 | 2021-06-28 | 通信周期決定装置、通信周期決定方法および通信周期決定プログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240086295A1 (ja) |
JP (1) | JP7317269B2 (ja) |
CN (1) | CN117546104A (ja) |
DE (1) | DE112021007633T5 (ja) |
TW (1) | TWI830085B (ja) |
WO (1) | WO2023275942A1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016189689A1 (ja) | 2015-05-27 | 2016-12-01 | 三菱電機株式会社 | プログラム生成装置、プログラム生成方法及びプログラム生成プログラム |
WO2021005691A1 (ja) | 2019-07-08 | 2021-01-14 | 三菱電機株式会社 | 制御装置、プログラム監視方法及びプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4203661B2 (ja) * | 2004-08-02 | 2009-01-07 | パナソニック株式会社 | サーボ制御装置 |
JP4935369B2 (ja) | 2007-01-22 | 2012-05-23 | パナソニック株式会社 | サーボシステム |
CN110073301A (zh) * | 2017-08-02 | 2019-07-30 | 强力物联网投资组合2016有限公司 | 工业物联网中具有大数据集的数据收集环境下的检测方法和系统 |
JP7328064B2 (ja) * | 2019-08-07 | 2023-08-16 | ファナック株式会社 | 同期方法、及び制御装置 |
-
2021
- 2021-06-28 JP JP2023531157A patent/JP7317269B2/ja active Active
- 2021-06-28 WO PCT/JP2021/024381 patent/WO2023275942A1/ja active Application Filing
- 2021-06-28 CN CN202180099759.8A patent/CN117546104A/zh active Pending
- 2021-06-28 DE DE112021007633.7T patent/DE112021007633T5/de active Pending
- 2021-11-12 TW TW110142180A patent/TWI830085B/zh active
-
2023
- 2023-11-21 US US18/516,569 patent/US20240086295A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016189689A1 (ja) | 2015-05-27 | 2016-12-01 | 三菱電機株式会社 | プログラム生成装置、プログラム生成方法及びプログラム生成プログラム |
WO2021005691A1 (ja) | 2019-07-08 | 2021-01-14 | 三菱電機株式会社 | 制御装置、プログラム監視方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN117546104A (zh) | 2024-02-09 |
DE112021007633T5 (de) | 2024-02-22 |
TW202301052A (zh) | 2023-01-01 |
WO2023275942A1 (ja) | 2023-01-05 |
US20240086295A1 (en) | 2024-03-14 |
TWI830085B (zh) | 2024-01-21 |
JPWO2023275942A1 (ja) | 2023-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2947356B2 (ja) | 並列処理システム及び並列プロセッサの同期方法 | |
CN103348318A (zh) | 控制依赖于相同数据条件的相邻指令的执行 | |
US20070168685A1 (en) | Organic electroluminescence device | |
JPH0622035B2 (ja) | ベクトル処理装置 | |
JP7317269B2 (ja) | 通信周期決定装置、通信周期決定方法および通信周期決定プログラム | |
EP0032515A1 (en) | A method of pipeline control for a computer | |
JP2001015398A (ja) | 半導体処理工程制御システム、半導体処理工程制御方法、及び、そのための処理を記録した記録媒体 | |
KR20010001022A (ko) | 병렬 프로세서를 위한 무순서 명령어 발행 방법 및 장치 | |
CN116737279B (zh) | 用于程序运行的方法及装置、处理器、电子设备、介质 | |
US10353591B2 (en) | Fused shader programs | |
EP0164418A1 (en) | Microprogram control system | |
CN105122158B (zh) | 具有短延迟时间的可编程控制装置 | |
JPS63142431A (ja) | パイプライン制御方式 | |
US8490097B2 (en) | Information processing apparatus having a plurality of control units receiving transactions at the current time such that when the current time coincides with most recent start-up time the control units update the start-up time with the current time and sum up the number of transactions being processed limited to a predetermined threshold | |
EP0436402A2 (en) | Channel assignment in data processing apparatus | |
CN109858721B (zh) | 一种控制计算策略生成方法以及系统 | |
JPS5819953A (ja) | マイクロプログラム制御方式 | |
US8291145B2 (en) | Method and apparatus for setting a primary port on a PCI bridge | |
CN110968412B (zh) | 一种任务执行方法、系统及存储介质 | |
CN117093268B (zh) | 一种向量处理方法、系统、设备及存储介质 | |
JP2000250612A (ja) | プログラマブルコントローラ | |
WO2022201506A1 (ja) | プログラム作成支援システムおよびプログラム作成支援プログラム | |
CN111258643B (zh) | 数据处理方法、处理器、数据处理装置及存储介质 | |
JPS6116111B2 (ja) | ||
JPH086797A (ja) | 定数参照最適化処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20230529 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20230529 |
|
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: 20230620 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230718 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7317269 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |