JP2020030595A - プログラミング支援装置、プログラミング支援方法、およびプログラム - Google Patents

プログラミング支援装置、プログラミング支援方法、およびプログラム Download PDF

Info

Publication number
JP2020030595A
JP2020030595A JP2018155598A JP2018155598A JP2020030595A JP 2020030595 A JP2020030595 A JP 2020030595A JP 2018155598 A JP2018155598 A JP 2018155598A JP 2018155598 A JP2018155598 A JP 2018155598A JP 2020030595 A JP2020030595 A JP 2020030595A
Authority
JP
Japan
Prior art keywords
program
setting value
column
port
programming support
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
Application number
JP2018155598A
Other languages
English (en)
Other versions
JP7124556B2 (ja
Inventor
良太 丸野
Ryota Maruno
良太 丸野
直人 長谷川
Naoto Hasegawa
直人 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2018155598A priority Critical patent/JP7124556B2/ja
Priority to PCT/JP2019/028520 priority patent/WO2020039810A1/ja
Priority to EP19851042.2A priority patent/EP3842879B1/en
Publication of JP2020030595A publication Critical patent/JP2020030595A/ja
Priority to US17/171,454 priority patent/US11307829B2/en
Application granted granted Critical
Publication of JP7124556B2 publication Critical patent/JP7124556B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Automation & Control Theory (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすこと。【解決手段】表示画面上に、複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する(S11)。第1のプログラム言語による第1のプログラムに関して、各デバイスポートについて設定値欄への設定値の書き込みがなされたか否かを判断する(S12)。第1のプログラム言語による第1のプログラムに関して、設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、その設定値欄への設定値の書き込みを禁止する(S14)。【選択図】図5

Description

この発明は、プログラム言語によるプログラム作成を支援するプログラミング支援装置およびプログラミング支援方法に関する。また、この発明は、そのようなプログラミング支援方法をコンピュータに実行させるためのプログラムに関する。
従来、この種のプログラミング支援装置としては、プログラム作成者がコンピュータ上で或るプログラム言語を用いてプログラムを作成する段階で、そのコンピュータの表示画面上に、例えば特許文献1(特開2000−132210号公報)に開示されているようなマップ情報テーブルを表示するものがある。同文献のマップ情報テーブルは、そのプログラムが参照する参照名(シンボル,タグ名)と、その参照名に対応する実際の物理メモリ、物理I/Oポート、並びにネットワーク共有メモリ上のアドレス(チャネル番号)とを関連付けて表示している。
プログラム作成者は、表示画面上にこのマップ情報テーブルを表示した状態で、例えば或るシンボル名に対応する物理I/Oポートについての設定値を書き込む。すると、それ以降、その物理I/Oポートへの設定値の上書きは禁止され、その物理I/Oポートへの誤書き込みを防止するようになっている(ただし、上書き禁止を解除する特別の操作が行われた場合は、再び設定値の書き込みが可能となる。)。プログラム作成者は、このようにして設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成する。
特開2000−132210号公報
しかしながら、従来のプログラミング支援装置では、物理I/Oポートへの設定値の上書き禁止の機能は、そのプログラム言語によるプログラム作成にしか及ばない、という問題がある。
例えば、近年、シーケンス制御プログラムを実行するプログラマブルロジックコントローラ(PLC)エンジンと、ロボット制御プログラムを実行してロボットを制御するモーションコントローラ(MC)エンジンとを統合してなるシステムが開発されている。このシステムは、複数の物理I/Oポートを含み、それらの物理I/Oポートに設定された設定値は、それぞれセンサ、モータ、ロボットなどを駆動するプログラムによって参照される。
伝統的に、シーケンス制御プログラムの作成には、ラダー言語が用いられることが多い。一方、ロボット制御プログラムの作成には、C言語、C++、または各社独自のプログラム言語が用いられることが多い。そして、プログラム言語が異なれば、習熟度・作業効率の観点から、それぞれのプログラムの作成を互いに別のプログラム作成者が担当することが一般的に行われている。
このため、上記シーケンス制御プログラムの作成段階、上記ロボット制御プログラムの作成段階で、各プログラム作成者が区々に同じ物理I/Oポートへ設定値を誤って書き込んでしまう可能性がある(先に書き込まれた設定値が、後に書き込まれた設定値によって上書きされてしまう。)。その場合、その物理I/Oポートの設定値は、先に設定値を書き込んだプログラム作成者の意図しない状態になる。
そこで、この発明の課題は、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができるプログラミング支援装置およびプログラミング支援方法を提供することにある。また、この発明の課題は、そのようなプログラミング支援方法をコンピュータに実行させるためのプログラムを提供することにある。
上記課題を解決するため、この開示のプログラミング支援装置は、
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援装置であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する表示処理部と、
第1のプログラム言語による第1のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する書き込み判断部と、
上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する上書き禁止部と
を備えたことを特徴とする。
本明細書で、「デバイスポート」とは、物理I/O(入出力インタフェース)ポートなどの、プログラムの実行中に参照されるべき設定値が書き込まれる又は書き込まれたポートを広く指す。
また、上記設定値欄への設定値の書き込みは、キーボード、マウスなどの操作部を介した入力によって行われ得る。
この開示のプログラミング支援装置では、表示処理部は、表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する。書き込み判断部は、第1のプログラム言語による第1のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する。上書き禁止部は、上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する。したがって、上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、プログラム作成者が、上記第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込み(上書き)を誤って行うことが無い。つまり、このプログラミング支援装置によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成することができる。これにより、上記複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
一実施形態のプログラミング支援装置では、上記設定値欄は、上記第1のプログラムのための第1の設定値欄と、上記第2のプログラムのための第2の設定値欄とに区分されていることを特徴とする。
この一実施形態のプログラミング支援装置では、第1のプログラム言語による第1のプログラムに関して、そのプログラムを作成するプログラム作成者は上記第1の設定値欄へ設定値の書き込みを行う。一方、第2のプログラム言語による第2のプログラムに関して、そのプログラムを作成するプログラム作成者は、許容されていれば(上記上書き禁止部によって禁止されていなければ)、上記第2の設定値欄へ設定値の書き込みを行う。したがって、上記第1、第2のプログラムの作成を互いに別のプログラム作成者が担当する場合であっても、各プログラム作成者が設定値の書き込みを行うべき欄を迷うことが無い。
一実施形態のプログラミング支援装置では、上記表示処理部は、上記設定値の書き込みが禁止された上記第2の設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とする。
この一実施形態のプログラミング支援装置では、上記表示処理部は、上記設定値の書き込みが禁止されたデバイスポートの上記第2の設定値欄に、書き込み不能であることを表す書き込み不能表示を行う。したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された上記第2の設定値欄へ、設定値の書き込みを無駄に試みることが無い。
一実施形態のプログラミング支援装置では、上記マップ情報テーブルは、さらに、上記各デバイスポートについて書き込まれるべき設定値のデータ型を示すデータ型欄を含むことを特徴とする。
この一実施形態のプログラミング支援装置では、上記マップ情報テーブルのデータ型欄に、上記各デバイスポートに書き込まれるべき設定値のデータ型が示される。したがって、各プログラム作成者が書き込むべき設定値のデータ型を間違うことが無い。
一実施形態のプログラミング支援装置では、
上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断するデータ型判断部を備え、
上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
この一実施形態のプログラミング支援装置では、データ型判断部は、上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断する。上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行う。したがって、その書き込み不能表示を見たプログラム作成者は、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、設定値の書き込みを無駄に試みることが無い。
別の局面では、この開示のプログラミング支援方法は、
複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援方法であって、
表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示し、
第1のプログラム言語による第1のプログラムに関して、上記複数のデバイスポートについてそれぞれ上記設定値欄への設定値の書き込みがなされたか否かを判断し、
上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する
ことを特徴とする。
この開示のプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブルを適宜参照しながら、プログラムを作成することができる。これにより、上記複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
さらに別の局面では、この開示のプログラムは、上記プログラミング支援方法をコンピュータに実行させるためのプログラムである。
この開示のプログラムをコンピュータに実行させることによって、上記プログラミング支援方法を実施することができる。
以上より明らかなように、この開示のプログラミング支援装置およびプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。また、この開示のプログラムによれば、そのようなプログラミング支援方法をコンピュータに実行させることができる。
この発明の一実施形態のプログラミング支援装置が適用されたシステムの概略的なブロック構成を示す図である。 上記プログラミング支援装置をなすパーソナルコンピュータ(PC)のブロック構成を示す図である。 上記システムの一部をなす第2ユニット(型番「NX−eeee」)に含まれたI/Oポート群を示す図である。 上記プログラミング支援装置の表示画面に、マップ情報テーブルを最初に表示する初期表示処理のフローを示す図である。 上記プログラミング支援装置によって、第1のプログラム言語(ラダー言語)による第1のプログラム(シーケンス制御プログラム)に関して、上記マップ情報テーブルの「Variable」欄にデバイス変数を書き込む処理のフローを示す図である。 上記プログラミング支援装置によって、第2のプログラム言語(本出願人の独自開発による言語)による第2のプログラム(ロボット制御プログラム)に関して、上記マップ情報テーブルの「Digital I/O」欄にデジタルI/O設定値を書き込む処理のフローを示す図である。 上記プログラミング支援装置の表示画面に、初期表示処理によって表示されるマップ情報テーブルを例示する図である。 上記マップ情報テーブルへの設定値の書き込み前の状態を示す図である。 上記マップ情報テーブルへの設定値の書き込み後の状態を示す図である。
以下、この発明の実施の形態を、図面を参照しながら詳細に説明する。
図1は、この発明の一実施形態のプログラミング支援装置が適用されたシステム400の概略的なブロック構成を示している。このシステム400は、大別して、プログラミング支援装置をなすパーソナルコンピュータ(PC)10と、このPC10に通信ケーブル19を介して通信可能に接続されたプログラマブルロジックコントローラ(PLC)100と、このPLC100に通信ケーブル119を介して通信(この例では、EtherCAT(登録商標)通信)可能に接続されたデバイス群200とを含んでいる。
デバイス群200は、この例では、第1ノード201(参照名「Node1」、型番「GX−aaaa」)と、第2ノード202(参照名「Node2」、型番「GX−bbbb」)と、第3ノード203(参照名「Node3」、型番「NX−cccc」)と、この第3ノード203に通信(この例では、EtherCAT(登録商標)通信)可能に接続された第1ユニット204(参照名「Unit1」、型番「NX−dddd」)および第2ユニット205(参照名「Unit2」、型番「NX−eeee」)を含んでいる。これらのデバイス201〜205は、それぞれデバイスポートとしての物理I/Oポート(以下、単に「I/Oポート」という。)を複数含んでいる。それらのI/Oポートに設定された設定値は、それぞれ図示しないセンサ、モータ、ロボットなどを駆動するプログラムによって参照される。
例えば、第2ユニット205(型番「NX−eeee」)は、図3に示すように、I/Oポート群206として6個のI/Oポート211〜216を含んでいる。これらのI/Oポート211〜216には、それぞれ参照名「Output Bit 00」、「Output Bit 00 Time Stamp」、「Output Bit 00 Output Status」、「Output Bit 01」、「Output Bit 01 Time Stamp」、「Output Bit 01 Output Status」が付されている。この例では、これらのI/Oポート211〜216に設定された設定値は、図示しないロボットを駆動するプログラムによって参照される。
図1中に示すPLC100は、制御部101と、マップ情報記憶部102と、シーケンス制御プログラム記憶部103と、ロボット制御プログラム記憶部104とを含んでいる。
マップ情報記憶部102は、システム400に含まれた複数のI/Oポートに対応する参照名と、各I/Oポートのための設定値などとを対応付けて、それらのI/Oポート間の階層構造を含めて、マップ情報テーブルとして記憶する(後に図7〜図9を参照して詳述する。)。これにより、マップ情報テーブルは、複数のI/Oポート間の階層構造を、EtherCAT(登録商標)ネットワークの構成一覧として含むものとなっている。
図1中に示すシーケンス制御プログラム記憶部103は、第1のプログラム言語(この例では、ラダー言語LD)による第1のプログラム(この例では、シーケンス制御プログラム)を記憶する。
ロボット制御プログラム記憶部104は、第2のプログラム言語(この例では、本出願人の独自開発による言語)による第2のプログラム(この例では、ロボット制御プログラム)を記憶する。
制御部101は、動作時に、シーケンス制御プログラム記憶部103に記憶された「シーケンス制御プログラム」に従って、マップ情報記憶部102に記憶されたマップ情報テーブルを参照しながら、例えば、このPLC100自体に接続されたセンサ、モータなどを制御する。それと並行して、制御部101は、ロボット制御プログラム記憶部104に記憶された「ロボット制御プログラム」に従って、マップ情報記憶部102に記憶されたマップ情報テーブル300を参照しながら、例えば、上述の第2ユニット205のI/Oポート211〜216を介してロボットの動作(モーション)を制御する。このように、このPLC100は、シーケンス制御プログラムによるシーケンス制御と、ロボット制御プログラムによるロボット制御とを、統合した制御動作を行う。
図1中に示すPC10は、この例では、主にプログラミング支援装置として、シーケンス制御プログラム記憶部103に記憶される「シーケンス制御プログラム」、および、ロボット制御プログラム記憶部104に記憶される「ロボット制御プログラム」の作成支援のために設けられている。
この例では、PC10は、図2に示すように、CPU(Central Processing Unit;中央演算処理ユニット)11と、表示器12と、操作部13と、記憶部14と、通信部16とを備えている。
CPU11は、ソフトウェア(コンピュータプログラム)によって動作し、後述のプログラミング支援方法に従う処理や、その他の各種処理を実行する。
表示器12は、この例では、LCD(液晶表示素子)からなり、CPU11からの制御信号に従って、表示画面に画像表示を行う。この例では、表示器12は、マップ情報テーブル300を表示するために用いられる。
操作部13は、この例では、キーボードとマウスからなり、ユーザ(操作者)からの指示およびデータなどを入力するために用いられる。
記憶部14は、この例では、非一時的にデータを記憶し得るEEPROM(電気的に書き換え可能な不揮発性メモリ)、および、一時的にデータを記憶し得るRAM(ランダム・アクセス・メモリ)を含んでいる。この記憶部14には、CPU11を制御するためのソフトウェア(コンピュータプログラム)が格納されている。また、この例では、記憶部14には、上述のマップ情報テーブルの内容が記憶される。この記憶内容については、後に詳述する。
通信部16は、CPU11によって制御されて所定の情報を外部の装置に送信したり、また、外部の装置からの情報を受信してCPU11に受け渡したりする。この例では、通信部16は、通信ケーブル19を介して、PLC100との通信を行うために働く。
図4〜図6は、上述の「シーケンス制御プログラム」および「ロボット制御プログラム」の作成を支援するために、PC10のCPU11が実行するプログラミング支援方法の処理フローを示している。
(初期表示処理)
図4に示す初期表示処理では、まずステップS1に示すように、CPU11は表示処理部として働いて、表示器12の表示画面に、図7に例示するようなマップ情報テーブル300(の表頭を含む外枠)を表示するとともに、ステップS2に示すように、PLC100のマップ情報記憶部102からマップ情報テーブルの内容(構成一覧)を読み出して、マップ情報テーブル300において複数のI/Oポート間の階層構造を展開して表示する。
図7に示すように、マップ情報テーブル300は、左から順に、システム400における各デバイスの位置を示す「Position」欄301と、それぞれの参照名を示す参照名欄としての「Port」欄302と、各参照名に対応する説明を示す「Description」欄303と、各ポートの設定値がPLC100の動作時に書き込み用「W」であるか又は読み取り用「R」であるかを示す「R/W」欄304と、各ポートについて書き込まれるべき設定値のデータ型を示すデータ型欄としての「Data Type」欄305と、シーケンス制御プログラムに関してデバイス変数が書き込まれるべき第1の設定値欄としての「Variable」欄306と、そのデバイス変数の型が書き込まれるべき「Variable Type」欄307と、ロボット制御プログラムに関してデジタルI/O設定値が書き込まれるべき第2の設定値欄としての「Digital I/O」欄308とを含んでいる。
上述の「Position」欄301と「Port」欄302によって、システム400に含まれたデバイス群の、EtherCAT(登録商標)ネットワークにおける階層構造が表されている。この例では、「Port」欄302の最上段セル310に、EtherCAT(登録商標)ネットワークの構成であることを示す「EtherCAT Network Configuration」と表示されている。その下方で、「Position」欄301のセル311,312,313に上から下へ向かって順に、それぞれ第1ノード201の参照名「Node1」、第2ノード202の参照名「Node2」、第3ノード203の参照名「Node3」が表示されている。それらのセル311,312,313に対応して、「Port」欄302には、それぞれのノードの型番「GX−aaaa」、「GX−bbbb」、「NX−cccc」が表示されている。さらに、その下方で、「Position」欄301のセル314,315に上から下へ向かって順に、それぞれ第1ユニット204の参照名「Unit1」、第2ユニット205の参照名「Unit2」が表示されている。それらのセル314,315に対応して、「Port」欄302には、それぞれのユニットの型番「NX−dddd」、「NX−eeee」が表示されている。
さらに、その下方で、「Port」欄302のセル321,322,323,324,325,326に上から下へ向かって順に、それぞれ第2ユニット205(型番「NX−eeee」)に含まれたI/Oポート211,212,213,214,215,216の参照名「Output Bit 00」、「Output Bit 00 Time Stamp」、「Output Bit 00 Output Status」、「Output Bit 01」、「Output Bit 01 Time Stamp」、「Output Bit 01 Output Status」が表示されている。図7中に破線390で囲んで示すように、この例では、第2ユニット205(型番「NX−eeee」)に含まれたI/Oポート211〜216に注目している。
この例では、「R/W」欄304に示すように、I/Oポート211(参照名「Output Bit 00」)、I/Oポート212(参照名「Output Bit 00 Time Stamp」)、I/Oポート214(参照名「Output Bit 01」)、および、I/Oポート215(参照名「Output Bit 01 Time Stamp」)の設定値は、それぞれ書き込み用「W」になっている。一方、I/Oポート213(参照名「Output Bit 00 Output Status」)、および、I/Oポート216(参照名「Output Bit 01 Output Status」)の設定値は、それぞれ読み取り用「R」になっている。
また、この例では、「Data Type」欄305に示すように、I/Oポート211(参照名「Output Bit 00」)、I/Oポート213(参照名「Output Bit 00 Output Status」)、I/Oポート214(参照名「Output Bit 01」)、および、I/Oポート216(参照名「Output Bit 01 Output Status」)のデータ型は、それぞれBOOL型になっている。一方、I/Oポート212(参照名「Output Bit 00 Time Stamp」)、および、I/Oポート215(参照名「Output Bit 01 Time Stamp」)のデータ型は、それぞれULINT型になっている。ここで、BOOL型とは、真理値の「真=true」と「偽=false」という2値をとるデータ型を指す。BOOL型であれば、シーケンス制御プログラムとロボット制御プログラムとの両方に使用可能である。ULINT型とは、符号なしの、64ビットの整数値をとるデータ型を指す。ULINT型であれば、シーケンス制御プログラムには使用可能であるが、ロボット制御プログラムには使用不可である。このように、このマップ情報テーブル300では、「Data Type」欄305に、各I/Oポート211〜216に書き込まれるべき設定値のデータ型が示される。したがって、各プログラム作成者が書き込むべき設定値のデータ型を間違うことが無い。
次に、図4のステップS3に進んで、CPU11はデータ型判断部として働いて、この例では第2ユニット205(型番「NX−eeee」)の各I/Oポート211〜216のデータ型がBOOL型であるか否かを判断する。つまり、実質的に、各I/Oポート211〜216のデータ型が各プログラムに関して設定値の書き込みに使用可能であるか否かを判断する。
ここで、上述のようにI/Oポート211(参照名「Output Bit 00」)、I/Oポート213(参照名「Output Bit 00 Output Status」)、I/Oポート214(参照名「Output Bit 01」)、および、I/Oポート216(参照名「Output Bit 01 Output Status」)のデータ型はそれぞれBOOL型であることから(ステップS3でYES)、CPU11は、「Variable」欄306へのデバイス変数の書き込みと、「Digital I/O」欄308へのデジタルI/O設定値の書き込みとの両方に使用可能であると判断する。そして、図4のステップS4で、CPU11は表示処理部として働いて、それらのI/Oポート211,213,214,216について、図7中の「Variable」欄306の対応するセル331,333,334,336と、「Variable Type」欄307の対応するセル341,343,344,346と、「Digital I/O」欄308の対応するセル351,353,354,356とに、それぞれ書き込みに使用可能であることを表す書き込み可能表示を行う。この例では、書き込み可能表示は、図7中に示すように、それらのセル331,333,334,336;341,343,344,346;351,353,354,356を白色(または明色)にすることに相当する。
一方、I/Oポート212(参照名「Output Bit 00 Time Stamp」)、および、I/Oポート215(参照名「Output Bit 01 Time Stamp」)のデータ型はそれぞれULINT型であることから(ステップS3でNO)、CPU11は、「Variable」欄306へのデバイス変数の書き込みには使用可能であるが、「Digital I/O」欄308へのデジタルI/O設定値の書き込みには使用不可と判断する。そして、図4のステップS5で、CPU11は表示処理部として働いて、それらのI/Oポート212,215について、図7中の「Variable」欄306の対応するセル332,335と、「Variable Type」欄307の対応するセル342,345とに、それぞれ書き込みに使用可能であることを表す書き込み可能表示を行う一方、「Digital I/O」欄308の対応するセル352,355に書き込み不能であることを表す書き込み不能表示を行う。この例では、この書き込み不能表示は、図7中に示すように、それらのセル352,355を暗色(上記白色または明色よりも暗い色を意味する。)にすることに相当する。なお、書き込み不能表示は、この態様の表示に限られるものではなく、例えば、各セルに斜めの罫線を付すなどの、他の態様の表示であってもよい(以下同様。)。つまり、書き込み不能表示は、ユーザがそれを見たとき、直感的に書き込み不能であることを認識できれば良い。
CPU11は、このようにして初期表示処理(図4)を完了する。この例では、初期表示処理によって作成されたマップ情報テーブル300は、PC10の記憶部14に保存されるとともに、PLC100のマップ情報記憶部102に保存される。このマップ情報テーブル300は、次に述べる「Variable」欄306へのデバイス変数の書き込み処理(図5)、および/または、「Digital I/O」欄308へのデジタルI/O設定値の書き込み処理(図6)の際に参照される。
ここで、図7に示したマップ情報テーブル300では、「Variable」欄306、「Variable Type」欄307、「Digital I/O」欄308の各セルに、書き込み可能表示または書き込み不能表示が行われている。したがって、プログラム作成者は、「Variable」欄306、「Digital I/O」欄308の各セルに設定値を書き込み可能であるか否かを、視覚を通して直感的に知ることができる。したがって、書き込み不能表示を見たプログラム作成者は、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄(上の例では、ロボット制御プログラムのためのセル352,355)に、設定値の書き込みを無駄に試みることが無い。
また、上述のマップ情報テーブル300では、設定値欄は、シーケンス制御プログラムのための「Variable」欄306と、ロボット制御プログラムのための「Digital I/O」欄308とに区分されている。したがって、ラダー言語LDによるシーケンス制御プログラムに関して、そのプログラムを作成するプログラム作成者は「Variable」欄306へデバイス変数の書き込みを行うことを促される。一方、独自の言語によるロボット制御プログラムに関して、そのプログラムを作成するプログラム作成者は、許容されていれば、「Digital I/O」欄308へデジタルI/O設定値の書き込みを行うことを促される。したがって、シーケンス制御プログラムとロボット制御プログラムの作成を互いに別のプログラム作成者が担当する場合であっても、各プログラム作成者が設定値の書き込みを行うべき欄を迷うことが無い。
(デバイス変数の書き込み処理)
図5に示すデバイス変数の書き込み処理では、まずステップS11に示すように、CPU11は表示処理部として働いて、この例では記憶部14から図8に例示するようなマップ情報テーブル300(この例では、図7に示したものと同じ)を読み出して、表示器12の表示画面に表示する。なお、PLC100のマップ情報記憶部102からマップ情報テーブルの内容(構成一覧)を読み出して、それが更新されていれば、マップ情報テーブル300を更新して表示してもよい。
次に、ユーザが、操作部13を介して、シーケンス制御プログラムに関して、例えばI/Oポート211(参照名「Output Bit 00」)について、「Variable」欄306の対応するセル331にデバイス変数「N2_Output_Bit_00」を入力し、また、これに伴って「Variable Type」欄307の対応するセル341にそのデバイス変数の型「Global Variables」を入力したものとする。すると、図5のステップS12で、CPU11は書き込み判断部として働いて、図9中に示すように、I/Oポート211について設定値の書き込みがなされたと判断して、「Variable」欄306のセル331に、デバイス変数「N2_Output_Bit_00」を書き込んで表示する。これとともに、CPU11は、「Variable Type」欄307のセル341に、デバイス変数の型「Global Variables」を書き込んで表示する。
次に、図5のステップS13で、CPU11は、図9中に示す「R/W」欄304を参照して、そのI/Oポート211が書き込み用のポートであるか否かを判断する。この例では、I/Oポート211は書き込み用「W」のポートであることから(ステップS13でYES)、図5のステップS14で、CPU11は上書き禁止部として働いて、そのI/Oポート211について、この例では「Digital I/O」欄308の対応するセル351への設定値の書き込みを禁止する。これとともに、CPU11は表示処理部として働いて、その「Digital I/O」欄308のセル351に、デジタルI/O設定値の書き込みが不可であることを表す書き込み不能表示を行う。この例では、この書き込み不能表示は、図9中に破線391で囲んで示すように、そのセル351を暗色にすることに相当する(図8中に破線391で囲んで示す元の白色または明色と比較されたい。)。
したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された設定値欄(上の例では、「Digital I/O」欄308のセル351)へ、設定値の書き込みを無駄に試みることが無い。
なお、図5のステップS12で、設定値の書き込みがなされたセルが例えばI/Oポート213(参照名「Output Bit 00 Output Status」)に対応するセル333,343であれば、そのI/Oポート213は読み取り用「W」のポートであることから(ステップS13でNO)、図9中に示すように、CPU11は、そのI/Oポート213について、「Digital I/O」欄308の対応するセル353への設定値の書き込みを許容する。したがって、そのセル353に、ロボット制御プログラムのための設定値の書き込みが可能になる。この例では、図9中に示すように、セル353に、4010という値が書き込まれている。
(デジタルI/O設定値の書き込み処理)
図6に示すデジタルI/O設定値の書き込み処理では、まずステップS21に示すように、CPU11は表示処理部として働いて、この例では記憶部14から図8に例示するようなマップ情報テーブル300(この例では、図7に示したものと同じ)を読み出して、表示器12の表示画面に表示する。なお、図5中のステップS11に関して述べたのと同様に、PLC100のマップ情報記憶部102からマップ情報テーブルの内容(構成一覧)を読み出して、それが更新されていれば、マップ情報テーブル300を更新して表示してもよい。
次に、ユーザが、操作部13を介して、ロボット制御プログラムに関して、例えばI/Oポート214(参照名「Output Bit 01」)について、「Digital I/O」欄308のセル354にデジタルI/O設定値(この例では、4009という値)を入力したものとする。すると、図5のステップS22で、CPU11は書き込み判断部として働いて、図9中に示すように、「Digital I/O」欄308のセル354に、デジタルI/O設定値(この例では、4009という値)を書き込んで表示する。
次に、図6のステップS23で、CPU11は、図9中に示す「R/W」欄304を参照して、そのI/Oポート214が書き込み用のポートであるか否かを判断する。この例では、I/Oポート214は書き込み用「W」のポートであることから(ステップS23でYES)、図6のステップS24で、CPU11は上書き禁止部として働いて、そのI/Oポート214について、この例では「Variable」欄306の対応するセル334、および、「Variable Type」欄307の対応するセル344への設定値の書き込みを禁止する。これとともに、CPU11は表示処理部として働いて、その「Variable」欄306のセル334、および、「Variable Type」欄307のセル344に、書き込みが不可であることを表す書き込み不能表示を行う。この例では、それらの書き込み不能表示は、図9中に破線392で囲んで示すように、それらのセル334,344を暗色にすることに相当する(図8中に破線392で囲んで示す元の白色または明色と比較されたい。)。
したがって、その書き込み不能表示を見たプログラム作成者は、上記設定値の書き込みが禁止された設定値欄(上の例では、「Variable」欄306のセル334,344)へ、設定値の書き込みを無駄に試みることが無い。
なお、図6のステップS22で、設定値の書き込みがなされたセルが例えばI/Oポート213(参照名「Output Bit 00 Output Status」)に対応するセル353であれば、そのI/Oポート213は読み取り用「W」のポートであることから(ステップS23でNO)、図9中に示すように、CPU11は、そのI/Oポート213について、「Variable」欄306の対応するセル334、および、「Variable Type」欄307の対応するセル344への設定値の書き込みを許容する。したがって、それらのセル334,344に、シーケンス制御プログラムのための設定値の書き込みが可能になる。この例では、図9中に示すように、セル333にデバイス変数「N2_Output_Bit_00」が書き込まれている。また、それに伴って、セル333に、デバイス変数の型「Global Variables」が書き込まれている。
このように、このプログラミング支援方法によれば、デバイスポートへの設定値の上書き禁止の機能を、互いに異なる複数のプログラム言語によるプログラム作成へ及ぼすことができる。したがって、それぞれのプログラムを作成するプログラム作成者は、このようにして適切に設定値の書き込みがなされたマップ情報テーブル300を適宜参照しながら、プログラムを作成することができる。これにより、複数のデバイスポートについての設定値は、各プログラム作成者が意図した状態になる。
なお、CPU11は、図5のステップS14で設定値の書き込みが禁止された設定値欄(図9中に示す「Digital I/O」欄308のセル351)、図6のステップS24で設定値の書き込みが禁止された設定値欄(図9中に示す「Variable」欄306のセル334、および、「Variable Type」欄307のセル344)について、操作部13を介したユーザの指示(書き込み禁止を解除する指示)があれば、上記設定値の書き込み禁止を解除し、書き込み不能表示を解消してもよい。これにより、プログラム作成の状況に応じて、ユーザの便宜を図ることができる。
上述の実施形態では、第1のプログラム言語はラダー言語LDであり、第2のプログラム言語は本出願人の独自開発による言語であるものとしたが、これに限られるものではない。この発明は、互いに異なる複数のプログラム言語に広く適用することができる。
上述のプログラミング支援方法を、ソフトウェア(コンピュータプログラム)として、CD(コンパクトディスク)、DVD(デジタル万能ディスク)、不揮発性メモリなどの非一時的(non-transitory)にデータを記憶可能な記録媒体に記録してもよい。このような記録媒体に記録されたソフトウェアを、パーソナルコンピュータ、PDA(パーソナル・デジタル・アシスタンツ)などの実質的なコンピュータ装置にインストールすることによって、それらのコンピュータ装置に、上述のプログラミング支援方法を実行させることができる。
以上の実施形態は例示であり、この発明の範囲から離れることなく様々な変形が可能である。上述した複数の実施の形態は、それぞれ単独で成立し得るものであるが、実施の形態同士の組みあわせも可能である。また、異なる実施の形態の中の種々の特徴も、それぞれ単独で成立し得るものであるが、異なる実施の形態の中の特徴同士の組みあわせも可能である。
10 PC
11 CPU
100 PLC
200 デバイス群
211〜216 I/Oポート

Claims (7)

  1. 複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援装置であって、
    表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示する表示処理部と、
    第1のプログラム言語による第1のプログラムに関して、上記各デバイスポートについて上記設定値欄への設定値の書き込みがなされたか否かを判断する書き込み判断部と、
    上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する上書き禁止部と
    を備えたことを特徴とするプログラミング支援装置。
  2. 請求項1に記載のプログラミング支援装置において、
    上記設定値欄は、上記第1のプログラムのための第1の設定値欄と、上記第2のプログラムのための第2の設定値欄とに区分されていることを特徴とするプログラミング支援装置。
  3. 請求項2に記載のプログラミング支援装置において、
    上記表示処理部は、上記設定値の書き込みが禁止された上記第2の設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
  4. 請求項2または3に記載のプログラミング支援装置において、
    上記マップ情報テーブルは、さらに、上記各デバイスポートについて書き込まれるべき設定値のデータ型を示すデータ型欄を含むことを特徴とするプログラミング支援装置。
  5. 請求項4に記載のプログラミング支援装置において、
    上記各デバイスポートについて上記データ型欄に示されたデータ型が、上記各プログラムに関して上記設定値の書き込みに使用可能であるか否かを判断するデータ型判断部を備え、
    上記表示処理部は、上記各デバイスポートについての、上記データ型が上記設定値の書き込みに使用不可であると判断されたプログラムのための設定値欄に、書き込み不能であることを表す書き込み不能表示を行うことを特徴とするプログラミング支援装置。
  6. 複数のデバイスポートを含むシステムのための、複数のプログラム言語によるプログラム作成を支援するプログラミング支援方法であって、
    表示画面上に、上記複数のデバイスポートをそれぞれ表す参照名欄と、各デバイスポートのための設定値欄とを対応付けて、マップ情報テーブルとして一覧表示し、
    第1のプログラム言語による第1のプログラムに関して、上記複数のデバイスポートについてそれぞれ上記設定値欄への設定値の書き込みがなされたか否かを判断し、
    上記第1のプログラム言語による第1のプログラムに関して、上記設定値欄への設定値の書き込みがなされたと判断されたデバイスポートについて、上記第1のプログラム言語とは異なる第2のプログラム言語による第2のプログラムに関して、上記設定値欄への設定値の書き込みを禁止する
    ことを特徴とするプログラミング支援方法。
  7. 請求項6に記載のプログラミング支援方法をコンピュータに実行させるためのプログラム。
JP2018155598A 2018-08-22 2018-08-22 プログラミング支援装置、プログラミング支援方法、およびプログラム Active JP7124556B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2018155598A JP7124556B2 (ja) 2018-08-22 2018-08-22 プログラミング支援装置、プログラミング支援方法、およびプログラム
PCT/JP2019/028520 WO2020039810A1 (ja) 2018-08-22 2019-07-19 プログラミング支援装置、プログラミング支援方法、およびプログラム
EP19851042.2A EP3842879B1 (en) 2018-08-22 2019-07-19 Programming assistance device, programming assistance method, and program
US17/171,454 US11307829B2 (en) 2018-08-22 2021-02-09 Programming assistance device, programming assistance method, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018155598A JP7124556B2 (ja) 2018-08-22 2018-08-22 プログラミング支援装置、プログラミング支援方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2020030595A true JP2020030595A (ja) 2020-02-27
JP7124556B2 JP7124556B2 (ja) 2022-08-24

Family

ID=69593051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018155598A Active JP7124556B2 (ja) 2018-08-22 2018-08-22 プログラミング支援装置、プログラミング支援方法、およびプログラム

Country Status (4)

Country Link
US (1) US11307829B2 (ja)
EP (1) EP3842879B1 (ja)
JP (1) JP7124556B2 (ja)
WO (1) WO2020039810A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132210A (ja) * 1998-10-23 2000-05-12 Omron Corp 制御装置及び協調制御方法
WO2001061503A1 (en) * 2000-02-16 2001-08-23 Fujitsu Limited Nonvolatile memory
JP2017016312A (ja) * 2015-06-30 2017-01-19 富士通フロンテック株式会社 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003006395A (ja) * 2001-06-18 2003-01-10 Hitachi Ltd 業務支援情報抽出プログラム及びそれを用いた業務支援情報抽出システム
US7290048B1 (en) * 2002-03-29 2007-10-30 Hyperformix, Inc. Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications
US20040128307A1 (en) * 2002-12-30 2004-07-01 Creativyst, Inc. Method of storing and retrieving database records that stores multiple field values within directory entries of an underlying operating system
US7756882B2 (en) * 2004-10-01 2010-07-13 Microsoft Corporation Method and apparatus for elegant mapping between data models
US7949848B2 (en) * 2007-03-08 2011-05-24 Arm Limited Data processing apparatus, method and computer program product for reducing memory usage of an object oriented program
JP5757098B2 (ja) * 2011-02-08 2015-07-29 富士電機株式会社 プログラム作成支援装置、プログラム作成支援方法
JP2012213144A (ja) * 2011-03-18 2012-11-01 Ricoh Co Ltd 情報処理装置、情報処理システム、機器連携方法およびプログラム
US9742127B2 (en) * 2011-08-31 2017-08-22 Kimball P. Magee, Jr. Power strips
US8914420B2 (en) * 2012-04-30 2014-12-16 Gainspan Corporation Populating data structures of software applications with input data provided according to extensible markup language (XML)
US10073764B1 (en) * 2015-03-05 2018-09-11 National Technology & Engineering Solutions Of Sandia, Llc Method for instruction sequence execution analysis and visualization
US10642896B2 (en) * 2016-02-05 2020-05-05 Sas Institute Inc. Handling of data sets during execution of task routines of multiple languages
US11594307B2 (en) * 2017-12-31 2023-02-28 Laboratory Corporation Of America Holdings Automatic self-documentation in a mobile-native clinical trial operations system and service suite
US11615142B2 (en) * 2018-08-20 2023-03-28 Salesforce, Inc. Mapping and query service between object oriented programming objects and deep key-value data stores
US11119798B2 (en) * 2018-11-15 2021-09-14 Sternum Ltd. Applying control flow integrity verification in intermediate code files

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132210A (ja) * 1998-10-23 2000-05-12 Omron Corp 制御装置及び協調制御方法
WO2001061503A1 (en) * 2000-02-16 2001-08-23 Fujitsu Limited Nonvolatile memory
JP2017016312A (ja) * 2015-06-30 2017-01-19 富士通フロンテック株式会社 複合システムの排他制御プログラム、複合システム及びクライアント−サーバシステム

Also Published As

Publication number Publication date
US11307829B2 (en) 2022-04-19
WO2020039810A1 (ja) 2020-02-27
EP3842879A1 (en) 2021-06-30
EP3842879A4 (en) 2022-05-18
US20210165637A1 (en) 2021-06-03
EP3842879B1 (en) 2024-04-10
JP7124556B2 (ja) 2022-08-24

Similar Documents

Publication Publication Date Title
JP6538771B2 (ja) 数値制御装置、および、数値制御装置の制御方法
US8225274B2 (en) Code highlight and intelligent location descriptor for programming shells
JP6150953B2 (ja) デバッグ装置、デバッグ方法及びデバッグプログラム
JP3847585B2 (ja) エディタの登録装置、登録プログラムおよびそれを記録した記録媒体
WO2020039810A1 (ja) プログラミング支援装置、プログラミング支援方法、およびプログラム
CN106775956A (zh) Xen虚拟机Fork机制建立方法
WO2015102056A1 (ja) Fa機器構成設計支援装置およびプログラム
JP2001060196A (ja) 画像処理装置
JPS58111197A (ja) 画像処理装置
JP2009163524A (ja) 演算処理装置
JP3129889B2 (ja) 数値制御装置
JP6874814B2 (ja) 産業機器の制御装置、産業機器の制御装置の設定システム、産業機器の制御装置の設定方法、及びプログラム
JP2004171283A (ja) 表示制御装置、プログラム、および、そのプログラムが記録された記録媒体
JP5008520B2 (ja) 表示画面内へのデータ入力状況表示方法
JP2009093320A (ja) プログラマブルコントローラの内部メモリに対する外部アクセスデータ判別システムおよび該プログラマブルコントローラ
JP3480957B2 (ja) メモリのプログラミング装置
JP2007128172A (ja) プログラマブル・コントローラ
JP2507763B2 (ja) 修正適用処理方法
JPH1145103A (ja) プログラミング装置並びに割込処理記述方法、プログラマブルコントローラ、及び記録媒体
JPH06314118A (ja) モニタ装置
JPH08115256A (ja) 記憶制御装置
JP5016913B2 (ja) 印刷装置、印刷装置の設定方法
JPH10333873A (ja) 情報設定装置
JPS62174862A (ja) マルチプロセツサによる制御装置
JPH06301459A (ja) 作業再現方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220322

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: 20220712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220725

R150 Certificate of patent or registration of utility model

Ref document number: 7124556

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150