JP7403732B1 - 翻訳プログラム、翻訳装置及び翻訳方法 - Google Patents
翻訳プログラム、翻訳装置及び翻訳方法 Download PDFInfo
- Publication number
- JP7403732B1 JP7403732B1 JP2023564117A JP2023564117A JP7403732B1 JP 7403732 B1 JP7403732 B1 JP 7403732B1 JP 2023564117 A JP2023564117 A JP 2023564117A JP 2023564117 A JP2023564117 A JP 2023564117A JP 7403732 B1 JP7403732 B1 JP 7403732B1
- Authority
- JP
- Japan
- Prior art keywords
- variable
- source code
- shared memory
- translation
- 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.)
- Active
Links
- 238000013519 translation Methods 0.000 title claims abstract description 73
- 238000000034 method Methods 0.000 title claims description 22
- 238000012544 monitoring process Methods 0.000 claims abstract description 81
- 230000006870 function Effects 0.000 claims abstract description 26
- 238000010586 diagram Methods 0.000 claims description 19
- 238000006243 chemical reaction Methods 0.000 claims description 16
- 230000014509 gene expression Effects 0.000 claims description 11
- 230000008520 organization Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 14
- 230000006399 behavior Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 101100503482 Arabidopsis thaliana FTSH5 gene Proteins 0.000 description 4
- 101150082136 VAR1 gene Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Abstract
Description
本実施の形態に係るPLCプログラム開発環境10は、図1に示されるように、プログラマブルコントローラであるPLC30に接続されて、PLC30に被制御機器40を制御させるためのプログラム23のユーザによる開発を支援する支援端末に相当する。詳細には、PLCプログラム開発環境10は、シーケンス制御用の第1言語で記述された第1ソースコード21を、第1言語とは異なる汎用の高級言語で記述された第2ソースコード22に翻訳して、当該第2ソースコード22をコンパイルして得たプログラム23を、PLC30の非共有メモリ302に書き込む翻訳装置の一例に相当する。プログラム23は、実行される際に、当該プログラム23で用いられる監視変数の値を共有メモリ301に格納する。共有メモリ301は、被制御機器40と共有されるメモリであり、そのデータを外部からリアルタイムに取得するためのツールが既に用意されているケースが多いため、当該ツールを利用すれば監視変数の値を監視することによりプログラム23の挙動を容易に観察することができる。図1では、支援端末としてのPLCプログラム開発環境10が有する監視部17によって監視変数の値が監視されることが示されている。
PLC30は、工場において被制御機器40を制御する制御装置である。PLC30の制御によって、例えば、ラインを流れるワークに対する加工及び検査に代表される種々の工程が実現される。なお、図1には、1つの被制御機器40が代表的に示されているが、通常は、複数の被制御機器40が連携するように制御される。例えば、センサである被制御機器40によるセンシング結果がPLC30に入力され、この入力に基づいてプログラムにより決定された運転命令が、ロボットである被制御機器40にPLC30から出力されることで、ワークに対する加工処理が施される。PLC30と被制御機器40とは、電流信号又は電圧信号を伝送する信号線、又は、フィールドネットワーク及びLAN(Local Area Network)のようなネットワークを介して接続される。
PLCプログラム開発環境10は、産業用PC(Personal Computer)であって、USB(Universal Serial Bus)ケーブルのような通信線を介して、又は上述のネットワークを介して、PLC30に接続される。PLCプログラム開発環境10は、コンピュータとして機能するためのハードウェア要素によって構成される。詳細には、図4に示されるように、PLCプログラム開発環境10は、プロセッサ101と、主記憶部102と、補助記憶部103と、入力部104と、出力部105と、通信部106と、を有する。主記憶部102、補助記憶部103、入力部104、出力部105及び通信部106はいずれも、内部バス107を介してプロセッサ101に接続される。
上述のハードウェア構成が協働することにより、PLCプログラム開発環境10は、PLC30によって実行されるプログラムの開発環境であるエンジニアリングツールとして機能する。このエンジニアリングツールによって、第1ソースコード21を第2ソースコード22に翻訳する機能が提供される。PLCプログラム開発環境10は、プログラマブルコントローラが被制御機器を制御するために実行するプログラムの第1言語で記述された第1ソースコードを、第1言語とは異なる第2言語で記述された第2ソースコードに翻訳する翻訳装置の一例に相当する。PLCプログラム開発環境10は、図5に示されるように、その機能として、第1ソースコード21を取得する取得部11と、第1ソースコード21を第2ソースコード22に翻訳する翻訳部12と、第1ソースコード21の翻訳に必要な情報の設定を受け付ける受付部13と、第2ソースコード22が実行されるときの実行速度を示す指標値を算出する指標値算出部14と、算出された指標値を提示する指標値提示部15と、第2ソースコード22をコンパイルするコンパイラ16と、監視変数の値を監視するための監視部17と、を有する。翻訳部12、コンパイラ16及び監視部17については、図1にも示されているが、その機能のより詳細な説明を以下で述べる。
続いて、PLCプログラム開発環境10によって実行される翻訳処理について、図12~13を用いて説明する。翻訳処理は、翻訳装置によって実行される翻訳方法の一例に相当する。
以上、説明したように、受付部13は、監視変数の指定を受け付けて、翻訳部12は、第1ソースコード21のうちの変数に関するコード部品を、当該変数が監視変数である場合には共有メモリ301を参照するコードに変換し、当該変数が監視変数とは異なる場合には非共有メモリ302を参照するコードに変換する。このため、ユーザは、監視変数の指定を変更することで、プログラム23の実行速度及び観測性を調整することができる。したがって、シーケンス制御用のプログラムを翻訳して、その挙動を観察したいという要望を満たす新たなプログラムを得るための作業負担を軽減することができる。
続いて、実施の形態2について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。上記実施の形態1では、監視変数が個別に指定されたが、プログラムの規模が大きくなり変数が多くなると、個別に指定することが難しくなる。そこで、監視変数のグループを指定することができれば、プログラム23の作成が容易になる。本実施の形態は、監視変数がその属性により指定される点で、実施の形態1とは異なる。
続いて、実施の形態3について、上述の実施の形態1との相違点を中心に説明する。なお、上記実施の形態1と同一又は同等の構成については、同等の符号を用いる。上記実施の形態1で説明したように、非共有メモリ302は、付属的な構成要素である場合があり、その場合には、非共有メモリ302の容量が比較的小さいものとなり得る。ここで、実行速度の速いプログラム23を得ようとすると、その変数の多くが非共有メモリ302に格納されることとなり、非共有メモリ302の容量を圧迫し、又は容量を超えてしまうおそれがある。すなわち、実行速度と非共有メモリ302の使用量とは、トレードオフの関係にあるといえる。このため、実行速度と非共有メモリ302の使用量とを調整可能であることが望ましい。以下、翻訳により得た第2ソースコード22について、非共有メモリ302の使用量がユーザに対して提示される形態について説明する。
Claims (13)
- プログラマブルコントローラが被制御機器を制御するために実行するプログラムの第1言語で記述された第1ソースコードを、前記第1言語とは異なる第2言語で記述された第2ソースコードに翻訳する翻訳装置を、
前記第1ソースコードに含まれる変数のうちの、前記プログラムが実行される際の監視対象である値が代入される監視変数の指定を受け付ける受付手段、
前記第1ソースコードのうちの、前記プログラマブルコントローラが有する共有メモリであって前記被制御機器と共有される前記共有メモリに値が格納される共有メモリ変数に関する変数コードを、前記共有メモリ変数が前記監視変数である場合には、前記共有メモリに値が格納される変数に関する第1変換コードに変換し、前記共有メモリ変数が前記監視変数とは異なる場合には、前記プログラマブルコントローラが有する前記共有メモリとは異なる非共有メモリに値が格納される変数に関する第2変換コードに変換することで、前記第1ソースコードを前記第2ソースコードに翻訳する翻訳手段、
として機能させるための翻訳プログラム。 - 前記第1ソースコードは、前記非共有メモリに変数の値を格納することなく前記プログラマブルコントローラによって実行される前記プログラムのソースコードである、
請求項1に記載の翻訳プログラム。 - 前記第1言語は、インストラクション・リスト、ラダー・ダイアグラム、ファンクションブロック・ダイアグラム、ストラクチャード・テキスト又はシーケンス・ファンクション・チャートである、
請求項1に記載の翻訳プログラム。 - 前記変数コードが前記第2変換コードに変換された場合の前記第2ソースコードの前記プログラムは、前記変数コードが前記第1変換コードに変換された場合の前記第2ソースコードの前記プログラムよりも、前記プログラマブルコントローラによって実行されたときの実行時間が短い、
請求項1に記載の翻訳プログラム。 - 前記翻訳装置を、
前記第2ソースコードの前記プログラムを実行した場合の実行時間の長さに対応する指標値を算出する指標値算出手段、
算出された前記指標値を提示する指標値提示手段、としてさらに機能させ、
前記受付手段は、前記指標値提示手段によって前記指標値が提示された後に前記監視変数の指定を再度受け付け、
前記翻訳手段は、再度受け付けられた指定に従って前記第1ソースコードを前記第2ソースコードに翻訳する、
請求項1から4のいずれか一項に記載の翻訳プログラム。 - 前記指標値算出手段は、前記第2ソースコードの前記プログラムが実行される際に前記共有メモリが参照される回数に基づいて前記指標値を算出する、
請求項5に記載の翻訳プログラム。 - 前記指標値算出手段は、前記回数と、前記第2ソースコードに含まれる予め定められた条件を満たす変数が前記監視変数である場合において前記プログラムが実行されるときに前記共有メモリが参照される基準回数と、の比較に基づいて前記指標値を算出する、
請求項6に記載の翻訳プログラム。 - 前記翻訳装置を、
前記第2ソースコードの前記プログラムが実行される際の前記非共有メモリの使用量を算出する使用量算出手段、
算出された前記使用量に関する情報を提示する情報提示手段、としてさらに機能させ、
前記受付手段は、前記情報提示手段によって前記情報が提示された後に前記監視変数の指定を再度受け付け、
前記翻訳手段は、再度受け付けられた指定に従って前記第1ソースコードを前記第2ソースコードに翻訳する、
請求項1から4のいずれか一項に記載の翻訳プログラム。 - 前記使用量算出手段は、前記第2ソースコードに含まれる変数のうちの前記非共有メモリに値が格納される変数のサイズの総計を、前記使用量として算出し、
前記情報提示手段は、前記使用量の削減を支援する前記情報を提示する、
請求項8に記載の翻訳プログラム。 - 前記受付手段は、前記監視変数として個別に指定された変数の名称のリストを受け付ける、
請求項1から4のいずれか一項に記載の翻訳プログラム。 - 前記受付手段は、前記監視変数となる変数が有すべき属性の指定を受け付け、
前記属性は、前記プログラマブルコントローラの入出力、グローバル変数、プログラム・オーガナイゼーション・ユニット若しくはファンクションブロックである変数の種別、前記第1言語の特定の制御構文の条件式で使用されること、前記条件式とは異なる演算式において使用されること、又は、特定の文字列を含む名称を有することである、
請求項1から4のいずれか一項に記載の翻訳プログラム。 - プログラマブルコントローラが被制御機器を制御するために実行するプログラムの第1言語で記述された第1ソースコードを、前記第1言語とは異なる第2言語で記述された第2ソースコードに翻訳する翻訳装置であって、
前記第1ソースコードに含まれる変数のうちの、前記プログラムが実行される際の監視対象である値が代入される監視変数の指定を受け付ける受付手段と、
前記第1ソースコードのうちの、前記プログラマブルコントローラが有する共有メモリであって前記被制御機器と共有される前記共有メモリに値が格納される共有メモリ変数に関する変数コードを、前記共有メモリ変数が前記監視変数である場合には、前記共有メモリに値が格納される変数に関する第1変換コードに変換し、前記共有メモリ変数が前記監視変数とは異なる場合には、前記プログラマブルコントローラが有する前記共有メモリとは異なる非共有メモリに値が格納される変数に関する第2変換コードに変換することで、前記第1ソースコードを前記第2ソースコードに翻訳する翻訳手段と、
を備える翻訳装置。 - プログラマブルコントローラが被制御機器を制御するために実行するプログラムの第1言語で記述された第1ソースコードを、前記第1言語とは異なる第2言語で記述された第2ソースコードに翻訳する翻訳装置によって実行される翻訳方法であって、
受付手段が、前記第1ソースコードに含まれる変数のうちの、前記プログラムが実行される際の監視対象である値が代入される監視変数の指定を受け付け、
翻訳手段が、前記第1ソースコードのうちの、前記プログラマブルコントローラが有する共有メモリであって前記被制御機器と共有される前記共有メモリに値が格納される共有メモリ変数に関する変数コードを、前記共有メモリ変数が前記監視変数である場合には、前記共有メモリに値が格納される変数に関する第1変換コードに変換し、前記共有メモリ変数が前記監視変数とは異なる場合には、前記プログラマブルコントローラが有する前記共有メモリとは異なる非共有メモリに値が格納される変数に関する第2変換コードに変換することで、前記第1ソースコードを前記第2ソースコードに翻訳する、
ことを含む翻訳方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023026646 | 2023-07-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP7403732B1 true JP7403732B1 (ja) | 2023-12-22 |
Family
ID=89307805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023564117A Active JP7403732B1 (ja) | 2023-07-20 | 2023-07-20 | 翻訳プログラム、翻訳装置及び翻訳方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7403732B1 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008015826A (ja) | 2006-07-06 | 2008-01-24 | Mitsubishi Electric Corp | ラダープログラム実行装置 |
US7921412B1 (en) | 2003-11-26 | 2011-04-05 | Sprint Communications Company L.P. | Application monitor system and method |
-
2023
- 2023-07-20 JP JP2023564117A patent/JP7403732B1/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7921412B1 (en) | 2003-11-26 | 2011-04-05 | Sprint Communications Company L.P. | Application monitor system and method |
JP2008015826A (ja) | 2006-07-06 | 2008-01-24 | Mitsubishi Electric Corp | ラダープログラム実行装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6950665B2 (ja) | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム | |
CN101697135A (zh) | 一种编译程序的方法及装置 | |
US20190196798A1 (en) | Executable program creation device, executable program creation method, and executable program creation program | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
KR102280116B1 (ko) | 엔지니어링 장치, 엔지니어링 장치의 제어 방법 및 프로그램 | |
US20230013854A1 (en) | Virtual developmental environment apparatus, method, and recording medium | |
JP2009157533A (ja) | プログラマブルコントローラシステム | |
EP3805879A1 (en) | Support device and support program | |
JP7403732B1 (ja) | 翻訳プログラム、翻訳装置及び翻訳方法 | |
CN107024900B (zh) | 最优编译plc命令的方法 | |
JP6945766B1 (ja) | データ解析プログラム作成支援装置、データ解析プログラム作成支援方法、およびデータ解析プログラム作成支援プログラム | |
US20130006397A1 (en) | Programmable controller and programming tool for communication with legacy equipment | |
JP7119714B2 (ja) | 情報処理装置、表示プログラム、および方法 | |
JP2013041546A (ja) | デバッグ支援プログラム、デバッグ支援方法及びデバッグ支援システム | |
JP7241982B1 (ja) | 画像生成プログラム、画像生成装置、プログラマブルコントローラシステム及び画像生成方法 | |
JP7208441B1 (ja) | Fa制御テスト支援プログラム、fa制御テスト支援装置、fa制御テスト支援方法及びfa制御テスト支援システム | |
CN112272820A (zh) | 支持装置以及支持程序 | |
JP7126637B1 (ja) | プログラミング支援プログラム、プログラミング支援方法及びプログラミング支援装置 | |
JP2018147114A (ja) | テストケース生成方法、計算機及びプログラム | |
US20070083852A1 (en) | Extended language specification assigning method, program developing method and computer-readable storage medium | |
KR102213046B1 (ko) | 설계 지원 장치, 설계 지원 방법 및 기록 매체에 저장된 프로그램 | |
WO2022054294A1 (ja) | バグ検出支援装置、バグ検出支援方法およびバグ検出支援プログラム | |
JP7238678B2 (ja) | 情報処理装置、サポートプログラムおよびサポートシステム | |
JPWO2013005350A1 (ja) | シンボルテーブル生成方法、周辺機器との通信方法およびプログラマブルロジックコントローラ | |
JP2013235381A (ja) | データ編集装置およびデータ編集方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231019 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20231019 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20231019 |
|
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: 20231114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20231212 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7403732 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |