JP2016224559A - プログラム作成支援装置、制御方法およびプログラム - Google Patents
プログラム作成支援装置、制御方法およびプログラム Download PDFInfo
- Publication number
- JP2016224559A JP2016224559A JP2015107842A JP2015107842A JP2016224559A JP 2016224559 A JP2016224559 A JP 2016224559A JP 2015107842 A JP2015107842 A JP 2015107842A JP 2015107842 A JP2015107842 A JP 2015107842A JP 2016224559 A JP2016224559 A JP 2016224559A
- Authority
- JP
- Japan
- Prior art keywords
- program
- function set
- unit
- project
- programmable logic
- 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.)
- Pending
Links
Classifications
-
- 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
- Programmable Controllers (AREA)
Abstract
【課題】PLCで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減すること。【解決手段】選択部54は、PLC2が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する。指定部55は格納部に格納された複数のシステムファイルの中から選択部54により選択された機能セットに対応するシステムファイルを抽出して指定する。変換部56は指定部55により指定されたシステムファイルを参照し、C言語プログラム44を実行コードに変換する。生成部57はラダープログラム43とC言語プログラム44の実行コードとを含むプロジェクト41を生成する。転送部58はプロジェクト41をPLC2に転送する。【選択図】図7
Description
本発明は、プログラマブル・ロジック・コントローラ用のプログラムを作成するプログラム作成支援装置、プログラム作成支援装置で実行されるプログラムおよび制御方法に関する。
特許文献1が示すようにラダープログラムとC言語プログラムとを実行するプログラマブル・ロジック・コントローラ(PLC)が知られている。
ラダープログラムやC言語プログラムなどのユーザプログラムを開発するための開発環境は頻繁にバージョンアップ(更新)されることがある。一般に、PLCの機能が増加する(たとえば、オプションの拡張ユニットが販売される)と、その機能に関するシステムファイル(ライブラリファイルなど)やコンパイラーのオプションを追加するために、開発環境を構成するファイル群などが更新される。ある機能に関連したヘッダファイルが更新されたときに、そのファイル名が変更されたり、ヘッダファイルの格納場所が変更されたりすることもある。ときには、ファイル名が変更されないこともある。システムファイル群は開発環境のバージョンに応じて複数保持されることもあるが、これは古いバージョンにしか互換性のないPLCが存在するからである。このようなケースでは開発環境のバージョンごとにフォルダが作成され、システムファイル群が区別されて格納される。したがって、ユーザは、開発環境のバージョンアップが行われたときにどのシステムファイル群を使用すべきかを判断して、適切にインクルードパスやシステムオプションなどを変更せねばならず、負担が重かった。
そこで、本発明は、PLCで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減することを目的とする。
本発明は、たとえば、
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムと、高級プログラミング言語で記述されたユーザプログラムである第2プログラムとを編集する編集部と、
前記第2プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部と、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部と、
前記格納部に格納された複数のシステムファイルの中から前記機能セット選択部により選択された機能セットに対応するシステムファイルを指定する指定部と、
前記指定部により指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換する変換部と、
前記第1プログラムと前記第2プログラムの実行コードとを含むプロジェクトを生成する生成部と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する転送部と
を有することを特徴とするプログラム作成支援装置を提供する。
プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムと、高級プログラミング言語で記述されたユーザプログラムである第2プログラムとを編集する編集部と、
前記第2プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部と、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部と、
前記格納部に格納された複数のシステムファイルの中から前記機能セット選択部により選択された機能セットに対応するシステムファイルを指定する指定部と、
前記指定部により指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換する変換部と、
前記第1プログラムと前記第2プログラムの実行コードとを含むプロジェクトを生成する生成部と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する転送部と
を有することを特徴とするプログラム作成支援装置を提供する。
本発明によれば、PLCで実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担を軽減することが可能となる。
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
はじめにプログラマブル・ロジック・コントローラ(PLC、単にプログラマブルコントローラと呼ばれてもよい)を当業者にとってよりよく理解できるようにするために、一般的なPLCの構成とその動作について説明する。
図1は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図1に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置1と、工場等に設置される各種制御装置を統括的に制御するためのPLC(プログラマブル・ロジック・コントローラ)2とを備えている。ユーザプログラムは、ラダー言語やモーションフローなどのグラフィカルプログラミング言語を用いて作成されてもよいし、C言語などの高級プログラミング言語を用いて作成されてもよい。以下では、説明の便宜上、ユーザプログラムはラダープログラムとする。PLC2は、CPUが内蔵された基本ユニット3と1つないし複数の拡張ユニット4を備えている。基本ユニット3に対して1つないし複数の拡張ユニット4が着脱可能となっている。基本ユニット3はCPUユニットと呼ばれることもある。
基本ユニット3には、表示部5及び操作部6が備えられている。表示部5には、基本ユニット3に取り付けられている各拡張ユニット4の動作状況などを表示することができ、表示部5の表示内容は、操作部6を操作することにより切り替えることができる。表示部5には、通常、PLC2内のデバイスの現在値(デバイス値)やPLC2内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー(補助リレー)、タイマー、カウンタ、データメモリ等の状態を示す情報である。
拡張ユニット4は、PLC2の機能を拡張するために用意されており、基本ユニット3に対して側方から取り付けられる。1つ目の拡張ユニット4は、基本ユニット3に対して側方から直接的に取り付けられる。2つ目以降の拡張ユニット4は、既に取り付けられている拡張ユニット4に対して、側方から直列的に取り付けられる。たとえば、基本ユニット3の右側面と拡張ユニット4の左側面とが連結面になっている。同様に、1つ目の拡張ユニット4の右側面の形状等は基本ユニット3の右側面とほぼ同じであるため、1つ目の拡張ユニット4の右側面に2つ目の拡張ユニット4の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット3と複数の拡張ユニット4が直列的に取り付けられると、各拡張ユニット4内に備えられた配線(例:バス)を介して、各拡張ユニット4が基本ユニット3に対して通信可能に接続される。各拡張ユニット4には、その拡張ユニット4の機能に対応する被制御装置16(図4)が接続され、これにより、各被制御装置16が拡張ユニット4を介して基本ユニット3に接続される。被制御装置16には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
プログラム作成支援装置1は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部7及び操作部8を備えている。PLC2を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置1を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置1内でニモニックコードに変換される。そして、プログラム作成支援装置1を、USB(Universal Serial Bus)などの通信ケーブル9を介してPLC2の基本ユニット3に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置1から基本ユニット3に送ると、そのラダープログラムが基本ユニット3内でマシンコードに変換され、基本ユニット3に備えられたメモリ内に記憶される。なお、ここではニモニックコードを基本ユニット3に送信するようにしているが、本発明はこれに限られず、例えばニモニックコードを更に中間コードに変換し、中間コードを基本ユニット3に送信するようにしてもよい。
なお、図1では示していないが、プログラム作成支援装置1の操作部8には、プログラム作成支援装置1に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置1は、USB以外の他の通信ケーブル9を介して、PLC2の基本ユニット3に対して着脱可能に接続されるような構成であってもよい。
図2は、ラダープログラムの作成時にプログラム作成支援装置1の表示部7に表示されるラダー図17の一例を示す図である。図2に示すように、PLC2を制御するためのラダープログラムは、プログラム作成支援装置1の表示部7にマトリックス状に表示される複数のセル18内に仮想デバイスのシンボル19を適宜配置して、視覚的なリレー回路を表すラダー図17を構築することにより作成される。
ラダー図17には、たとえば、10列×N行(Nは任意の自然数)のセル18が配置されている。そして、各行のセル18内に、図2に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル19を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、1行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
図2に示すリレー回路は、入力装置からの入力信号に基づいてオン/オフされる3つの仮想デバイス(以下、「入力デバイス」と呼ぶ。)のシンボル19a,19b,19cと、出力装置の動作を制御するためにオン/オフされる仮想デバイス(以下、「出力デバイス」と呼ぶ。)のシンボル19dとが適宜結合されることにより構成されている。
各入力デバイスのシンボル19a,19b,19cの上方に表示されている文字(「R0001」、「R0002」及び「R0003」)は、その入力デバイスのデバイス名(アドレス名)21を表している。各入力デバイスのシンボル19a,19b,19cの下方に表示されている文字(「フラグ1」、「フラグ2」及び「フラグ3」)は、その入力デバイスに対応付けられたデバイスコメント22を表している。出力デバイスのシンボル19dの上方に表示されている文字(「原点復帰」)は、その出力デバイスの機能を表す文字列からなるラベル23である。
図2に示す例では、デバイス名「R0001」及び「R0002」にそれぞれ対応する2つの入力デバイスのシンボル19a,19bが直列的に結合されることにより、AND回路が構成されている。また、これらの2つの入力デバイスのシンボル19a,19bからなるAND回路に対して、デバイス名「R0003」に対応する入力デバイスのシンボル19cが並列的に結合されることにより、OR回路が構成されている。すなわち、このリレー回路では、2つのシンボル19a,19bに対応する入力デバイスがいずれもオンした場合、又は、シンボル19cに対応する入力デバイスがオンした場合にのみ、シンボル19dに対応する出力デバイスがオンされるようになっている。
図3は、図1のプログラム作成支援装置1の電気的構成について説明するためのブロック図である。図3に示すように、プログラム作成支援装置1には、CPU24、表示部7、操作部8、記憶装置25及び通信部26が備えられている。表示部7、操作部8、記憶装置25及び通信部26は、それぞれCPU24に対して電気的に接続されている。記憶装置25は、少なくともRAMを含む構成であり、プログラム記憶部27と、編集ソフト記憶部28とを備えている。
ユーザは、編集ソフト記憶部28に記憶されている編集ソフトをCPU24に実行させて、操作部8を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、プログラム記憶部27に記憶される。また、ユーザは、必要に応じてプログラム記憶部27に記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部26は、通信ケーブル9を介してプログラム作成支援装置1を基本ユニット3に通信可能に接続するためのものである。
図4は、PLC2の電気的構成について説明するためのブロック図である。図4に示すように、基本ユニット3には、CPU10、表示部5、操作部6、記憶装置12及び通信部14が備えられている。表示部5、操作部6、記憶装置12、及び通信部14は、それぞれCPU10に電気的に接続されている。記憶装置12は、RAMやROM、メモリカードなどを含んでもよく、ラダープログラムなどを記憶する。記憶装置12には、プログラム作成支援装置1から入力されたラダープログラムやユーザデータが上書きして記憶される。また、記憶装置12には基本ユニット用の制御プログラムも格納されている。図4が示すように基本ユニット3と拡張ユニット4とは拡張バスの一種であるユニット外部バス90を介して接続されている。なお、ユニット外部バス90に関する通信機能は通信部14の一部として実装されてもよい。
図5は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット3でのスキャンタイムの構成を示す模式図である。図5が示すように1つのスキャンタイムTは、入出力のリフレッシュを行うためのユニット間通信201、プログラム実行202、END処理204により構成されている。ユニット間通信201で、基本ユニット3は、ラダープログラムを実行して得られた出力データを基本ユニット3内の記憶装置12から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット3内の記憶装置12に取り込む。たとえば、基本ユニット3のデバイスに記憶されているデバイス値はリフレッシュによって拡張ユニット4のデバイスに反映される。同様に、拡張ユニット4のデバイスに記憶されているデバイス値はリフレッシュによって基本ユニット3のデバイスに反映される。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット3のデバイスは基本ユニット3が随時書き換えており、同様に、拡張ユニット4のデバイスは拡張ユニット4が随時書き換えている。つまり、基本ユニット3のデバイスは基本ユニット3の内部の装置によって随時アクセス可能であり、同様に、拡張ユニット4のデバイスは拡張ユニット4の内部の装置によって随時アクセス可能になっている。基本ユニット3と拡張ユニット4との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行202で、基本ユニット3は、更新された入力データを用いてプログラムを実行(演算)する。基本ユニット3はプログラムの実行によりデータを演算処理する。なお、END処理とは、プログラム作成支援装置1や基本ユニット3に接続された表示器(図示せず)等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
このように、プログラム作成支援装置1はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをPLC2に転送する。PLC2は、入出力リフレッシュ、ラダープログラムの実行およびEND処理を1サイクル(1スキャン)として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器(センサ等)からのタイミング信号に基づいて、各種出力機器(モータ等)を制御する。よって、PLC2は汎用のパーソナルコンピュータ(PC)とは全く異なる動きをする。
<基本ユニットの機能>
図6は基本ユニット3のCPU10が制御プログラム40を実行することで実現する機能を中心に示している。CPU10において第1実行部30は、グラフィカルプログラミング言語で記述されるユーザプログラムである第1プログラムを実行する演算ユニットである。以下では第1プログラムの一例としてラダープログラムを採用するが、他のグラフィカルプログラミング言語で記述されるユーザプログラムであってもよい。第1実行部30は、ラダープログラム(中間コード)43を実行形式のコードに変換する機能を備えていてもよい。第1実行部30の外部にこのような変換器が設けられていてもよい。第2実行部31は、高級プログラミング言語で記述されるユーザプログラムである第2プログラムを実行する演算ユニットである。以下では第2プログラムの一例としてC言語プログラム44を採用するが、他の高級プログラミング言語で記述されるユーザプログラムであってもよい。なお、CPU10は第1実行部30と第2実行部31に相当する演算部を異なる複数のCPUコアとして備えていてもよいし、一方はCPU10のCPUコアが担当し、他方はASICなどで実装されてもよい。特に、第1実行部30がラダープログラムを実行する際には高速処理が要求されるため、高速処理対応のASICで実装し、第2実行部31が通信処理などを実行する際には高速処理は要求されないため、高機能CPUなどで実装してもよい。この場合、第1実行部30と第2実行部31はユニット内部バス32によって接続され、通信する。
図6は基本ユニット3のCPU10が制御プログラム40を実行することで実現する機能を中心に示している。CPU10において第1実行部30は、グラフィカルプログラミング言語で記述されるユーザプログラムである第1プログラムを実行する演算ユニットである。以下では第1プログラムの一例としてラダープログラムを採用するが、他のグラフィカルプログラミング言語で記述されるユーザプログラムであってもよい。第1実行部30は、ラダープログラム(中間コード)43を実行形式のコードに変換する機能を備えていてもよい。第1実行部30の外部にこのような変換器が設けられていてもよい。第2実行部31は、高級プログラミング言語で記述されるユーザプログラムである第2プログラムを実行する演算ユニットである。以下では第2プログラムの一例としてC言語プログラム44を採用するが、他の高級プログラミング言語で記述されるユーザプログラムであってもよい。なお、CPU10は第1実行部30と第2実行部31に相当する演算部を異なる複数のCPUコアとして備えていてもよいし、一方はCPU10のCPUコアが担当し、他方はASICなどで実装されてもよい。特に、第1実行部30がラダープログラムを実行する際には高速処理が要求されるため、高速処理対応のASICで実装し、第2実行部31が通信処理などを実行する際には高速処理は要求されないため、高機能CPUなどで実装してもよい。この場合、第1実行部30と第2実行部31はユニット内部バス32によって接続され、通信する。
PLC2の特徴的な機能としてデバイス(デバイスメモリ)が存在する。デバイスは、基本ユニット3の記憶装置12や拡張ユニット4のメモリにそれぞれ確保される。基本ユニット3と拡張ユニットは入出力用のデバイスを通じてデータや状態などを受け渡す。本実施例では、ラダープログラム43とC言語プログラム44はデバイスを通じて情報を受け渡すようにそれぞれプログラミングされている。つまり、第1実行部30と第2実行部31はデバイスを通じて情報を送受信する。
記憶装置12には、基本ユニット3のシステムプログラム(ファームウエア)である制御プログラム40と、プログラム作成支援装置1から転送されてきたプロジェクト41などが記憶される。プロジェクト41には、プロジェクトデータ42、ラダープログラム(中間コード)43およびC言語プログラム(実行コード)44などが含まれている。プロジェクト41には、ラダープログラムのソースコードやC言語プログラムのソースコードが含まれていてもよい。プロジェクトデータ42は、拡張ユニット4についての設定データなどが含まれている。ラダープログラム(中間コード)43はプログラム作成支援装置1によりソースコード(ラダー図)から生成された中間コード(ニーモニック)である。C言語プログラム(実行コードや実行ファイルと呼ばれてもよい)44はプログラム作成支援装置1によりソースコードから生成された実行形式のコードである。
プロジェクト管理部33は、プログラム作成支援装置1から通信部14を介してプロジェクト41の書き込み要求を受信すると、プログラム作成支援装置1からプロジェクト41を受信して記憶装置12に格納する。また、プロジェクト管理部33は、プログラム作成支援装置1から読み出し要求を受信すると、読み出し対象として指定されたファイル(例:プロジェクト41の全体、ラダープログラム43のみ、C言語プログラム44のみ、C言語プログラムのソースファイルのみなど)を記憶装置12から読み出して、プログラム作成支援装置1に転送する。プロジェクト41の読み出し機能はプロジェクト41の再編集に有用である。
<プログラム作成支援装置1の機能>
図7はプログラム作成支援装置1が編集ソフトウエア50を実行することで実現するCPU24の機能を中心に記載している。編集ソフトウエア50は、記憶装置25の編集ソフト記憶部28に記憶されている。とりわけ、編集ソフトウエア50は、グラフィカルプログラミング言語によるプログラミング環境と高級プログラミング言語によるプログラミング環境とを統合した統合開発環境を提供するものである。従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々の編集ソフトウエアが使用されていた。そのため、従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々のプロジェクトが作成されて管理されていた。一方で、本実施例ではグラフィカルプログラミング言語と高級プログラミング言語とで1つのプロジェクトにより管理することが可能となる。つまり、1つのプロジェクトファイルによりC言語プログラムとラダープログラムとを管理できるようになる。
図7はプログラム作成支援装置1が編集ソフトウエア50を実行することで実現するCPU24の機能を中心に記載している。編集ソフトウエア50は、記憶装置25の編集ソフト記憶部28に記憶されている。とりわけ、編集ソフトウエア50は、グラフィカルプログラミング言語によるプログラミング環境と高級プログラミング言語によるプログラミング環境とを統合した統合開発環境を提供するものである。従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々の編集ソフトウエアが使用されていた。そのため、従来はグラフィカルプログラミング言語と高級プログラミング言語とでそれぞれ別々のプロジェクトが作成されて管理されていた。一方で、本実施例ではグラフィカルプログラミング言語と高級プログラミング言語とで1つのプロジェクトにより管理することが可能となる。つまり、1つのプロジェクトファイルによりC言語プログラムとラダープログラムとを管理できるようになる。
プログラム記憶部27には、プロジェクト41などが記憶されている。プログラム作成支援装置1が保持しているプロジェクト41とPLC2が保持しているプロジェクト41には、プロジェクトデータ42、ラダープログラム43、C言語プログラム44などが含まれる。プロジェクト41をPLC2に転送するときに一部のファイルが削除されてもよい。たとえば、PLC2にとってソースコードなどは必ずしも必要ではないため、これらは転送されなくてもよい。なお、ソースコードも転送しておくと、PLC2からソースコードを取得した別のプログラム作成支援装置1においてソースコードを再編集することが可能となる。プロジェクトデータ42はプロジェクト41を構成している複数のファイル名と、どのファイルがソースファイルであり、どのファイルが実行ファイルであるかなどを管理するためのデータを有している。また、プロジェクトデータ42は拡張ユニット4の設定データなどが含まれていてもよい。
図8は統合開発環境のユーザインタフェースの一例を示す図である。CPU24は編集ソフトウエア50を起動すると、編集ソフトウエア50にしたがってユーザインタフェース70を表示部7に表示する。ワークスペース71は、ラダープログラム43の名称やC言語プログラム44の名称などを設定するための設定エリアである。CPU24(生成部57)は、ワークスペース71を通じてユーザにより入力されたプロジェクト41の名称、ラダープログラム43の名称、C言語プログラム44の名称、各実行ファイルの名称などをプロジェクトデータ42に格納する。ラダータブ72はラダープログラムを編集するためのタブである。C言語タブ73はC言語プログラム44のソースコード(ソースファイル)を編集するためのタブである。これらのタブは編集部53のユーザインタフェースである。ユーザは操作部8を通じて各プログラムのソースファイルを編集する。CPU24はプロジェクト41を1つの統合ファイルとしてまとめてもよいし、複数のファイルに分割して管理してもよい。後者の場合、CPU24はC言語プログラム44をテキストファイルに保存してもよい。テキストファイルに保存されたC言語プログラム44はユーザにとって使い慣れたテキストエディタによる編集を可能とする。
図7において編集部53は、グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラム(例:ラダープログラム43)と、高級プログラミング言語で記述された第2プログラム(例:C言語プログラム44)とを、操作部8から入力されるユーザの指示に応じて編集する機能である。記憶装置25には、C言語プログラム44を変換部56は実行コードに変換する際に参照される複数のシステムファイルを格納する格納部が設けられる。本実施例では、コンパイルに必要となるシステムファイル群であるコンパイルデータセット51が記憶装置25に記憶されている。選択部54は、PLC2が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部として機能する。たとえば、あるバージョンの機能セットにはメモリカードの読み書き機能が含まれているが、他のバージョンの機能セットにはメモリカードの読み書き機能は含まれていない。このように機能セットが異なれば、サポートしている機能に違いが生じるため、実行コードを生成するために必要となるシステムファイル群も異なってくることがある。
図9は機能セットを選択するためのユーザインタフェースの一例を示している。この機能セット選択UI75は、ユーザインタフェース70に対して操作部8を通じて所定の操作が実行されたことをCPU24が認識すると、表示部7に表示される。この例では、複数の機能セットを識別するための識別情報として機能セットバージョン情報(以下、バージョン情報と称す)が採用されている。ユーザは操作部8を通じてプルダウンリスト76を操作し、プロジェクト41に適用したい機能セットを選択する。選択部54は操作部8の操作を解析し、どの機能セットが選択されたかを判別する。
図7において指定部55は、記憶装置25に格納された複数のシステムファイルの中から選択部54により選択された機能セットに対応するシステムファイルを指定する機能である。記憶装置25は、複数の機能セットのそれぞれを示す機能セット識別情報(例:バージョン情報)と、各機能セットに対応するシステムファイルを示すシステムファイル情報(例:ファイルパスを含むファイル名)とを関連付けて記憶する記憶部として機能する。これらの関連付けは関連付データ52に保持されている。指定部55は、選択部54により選択された機能セットのバージョン情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを変換部56に指定する。
変換部56は、指定部55により指定されたシステムファイルを参照し、C言語プログラム44を実行コードに変換する機能である。変換部56はCPU24がコンパイラーの実行ファイルを実行することで実現される。このコンパイラーの実行ファイルも機能セットごとに個別に用意されていてもよい。このように、CPU24は、ソースコードのコンパイラー(実行コードや中間コードへの変換器(複数の中間コードをリンクして実行コードを生成するリンカーなどが含まれてもよい))を有し、実行形式や中間形式のファイルを生成する。
生成部57は、ラダープログラム43の中間コードとC言語プログラム44の実行コードとを含むプロジェクト41を生成する生成部である。転送部58はPLC2に対してプロジェクト41を書き込み(プログラム作成支援装置1からPLC2へ転送)したり、PLC2が保持しているプロジェクト41を読み出し(PLC2からプログラム作成支援装置1へ転送)したりする機能である。つまり、CPU24は通信部26を通じてPLC2に完成したプロジェクト41を転送したり、再編集のためにPLC2からプロジェクト41を転送したりする。
図10はコンパイルデータセット51の一例を示す図である。コンパイルデータセット51には、統合開発環境が用意したシステムファイル群であるシステムデータセット60とユーザが用意したユーザデータセット65とが含まれうる。システムデータセット60は機能セットバージョンごとに用意されるが、ユーザデータセット65も機能セットバージョンごとに用意されてもよい。各ファイルには機能セットバージョンを示すバージョン情報が埋め込まれているか、各ファイルは機能セットバージョンごとに別のフォルダに保存されている。これによりどのファイルがどのバージョン/機能セットのものかを容易に判別することが可能となる。
システムデータセット60には次のようなファイルが含まれうる。コンパイラー61は、C言語のソースファイル66を実行コードに変換するプログラムである。システムコンパイラオプションは実行コードの変換方法などを指定するオプションであり、たとえば、ダイナミックリンクやスタティックリンクなどを選択するための選択肢である。システムヘッダファイル63は、ソースファイルにインクルードされる別のファイルであり、サブルーチンや関数などを宣言するために利用される。システムライブラリファイル64は汎用性のあるプログラムの集合体であり、ソースコードまたはオブジェクトコードの集合体である。
ユーザデータセット65には次のようなファイルが含まれうる。ソースファイル66は、C言語プログラム44のソースファイルなどである。ユーザコンパイラオプション67はユーザが独自に定義したコンパイラーオプションである。ユーザヘッダファイル68はユーザが独自に用意したヘッダファイルである。ユーザライブラリファイル69はユーザが独自に用意したライブラリファイルである。ユーザはプログラミングの効率を上げるために、予め自身が頻繁に利用するプログラム部品をユーザヘッダファイル68やユーザライブラリファイル69として用意することがある。
上述したように、コンパイルデータセット51に含まれる各ファイルにはバージョン情報が埋め込まれてもよい。また、埋め込まれる位置は予め決められた固定位置であってもよい。このようにファイルにバージョン情報を埋め込んでおけば、そのファイルから直接バージョン情報を取得できるようになる。なお、プロジェクト41を管理するためのプロジェクトデータ42にバージョン情報が埋め込まれてもよい。これによりプロジェクト41を構成しているファイル群をサポートしているバージョン、つまり、互換性のあるバージョンが何であるかを容易に判別できるようになろう。
<メインのフローチャート>
図11はプロジェクトの作成処理を示すフローチャートである。S1でCPU24(選択部54)は操作部8および機能セット選択UI75を通じて機能セットの選択を受け付ける。S2でCPU24(指定部55)は、選択部54により選択された機能セットに対応するシステムデータセット60やユーザデータセット65を変換部56に指定する。たとえば、指定部55は、選択された機能セットを示すバージョン情報をもとに関連付データ52を参照し、選択された機能セットについて必要となるコンパイルデータセット51の格納領域(フォルダのパス名など)を特定し、特定した格納領域を変換部56に指定する。
図11はプロジェクトの作成処理を示すフローチャートである。S1でCPU24(選択部54)は操作部8および機能セット選択UI75を通じて機能セットの選択を受け付ける。S2でCPU24(指定部55)は、選択部54により選択された機能セットに対応するシステムデータセット60やユーザデータセット65を変換部56に指定する。たとえば、指定部55は、選択された機能セットを示すバージョン情報をもとに関連付データ52を参照し、選択された機能セットについて必要となるコンパイルデータセット51の格納領域(フォルダのパス名など)を特定し、特定した格納領域を変換部56に指定する。
S3でCPU24(編集部53)はユーザの必要に応じてC言語プログラム44のソースファイル66などを編集する。なお、単に再コンパイルするだけであれば、S3はスキップされる。なお、S1ないしS3の実行順序は入れ替えられてもよい。つまり、S1とS2はS4の前またはS4内で実行されればよい。
S4でCPU24(変換部56)は、指定部55により指定されたシステムデータセット60やユーザデータセット65にしたがってソースファイル66を実行コードに変換する。たとえば、変換部56は、指定されたシステムデータセット60に含まれているシステムコンパイラオプション62を引数としてコンパイラー61を起動し、システムヘッダファイル63をインクルードしてオブジェクトコードを生成し、さらにシステムライブラリファイル64をリンクして実行コードを生成する。ユーザデータセット65にユーザコンパイラオプション67やユーザヘッダファイル68、ユーザライブラリファイル69が存在する場合、変換部56は、指定されたシステムデータセット60に含まれているシステムコンパイラオプション62とユーザデータセット65に含まれているユーザコンパイラオプション67を引数としてコンパイラー61を起動し、システムヘッダファイル63とユーザヘッダファイル68をインクルードしてオブジェクトコードを生成し、さらにシステムライブラリファイル64とユーザライブラリファイル69をリンクして実行コードを生成する。このように実行コードを生成するために利用されるヘッダファイルやライブラリファイルは選択部54を通じてユーザにより選択された機能セットと互換性があるものとなる。基本的に、指定部55は、コンパイルデータセット51が格納されているフォルダの名称(パス名)をコンパイラー61に渡すものとするが、変換部56がパス名にしたがってソースファイル66の内部で宣言されているインクルードファイルのパス名を修正してもよい。なお、変換部56は、選択された機能セットを示すバージョン情報を実行コードに埋め込んでもよい。
S5でCPU24(生成部57)は、変換部56で生成された実行コードなどを含むプロジェクト41を生成し、CPU24(転送部58)は、生成されたプロジェクト41をPLC2に転送する。プロジェクト41を作成したプログラム作成支援装置1とは異なるプログラム作成支援装置1においてプロジェクト41が再編集される可能性がある場合、転送部58はシステムデータセット60やユーザデータセット65もプロジェクト41に含めて転送する。プロジェクト41を読み出して再編集するプログラム作成支援装置1がシステムデータセット60をすでに有している場合、システムデータセット60はPLC2に転送されなくてもよい。ユーザは操作部8を通じて転送対象のファイルを生成部57や転送部58に指定してもよい。生成部57は、選択された機能セットを示すバージョン情報をプロジェクト41のプロジェクトデータ42に保存してもよい。PLC2のプロジェクト管理部33は受信したプロジェクト41を記憶装置12に記憶させる。
<プロジェクトの書き込み>
図12はプロジェクトの書き込み処理(S5)の一部を詳細に示したフローチャートである。S11でCPU24(転送部58)は選択部54を通じてユーザにより選択された機能セットを示す識別情報(バージョン情報)を選択部54から取得する。
図12はプロジェクトの書き込み処理(S5)の一部を詳細に示したフローチャートである。S11でCPU24(転送部58)は選択部54を通じてユーザにより選択された機能セットを示す識別情報(バージョン情報)を選択部54から取得する。
S12でCPU24(転送部58)は通信部26を通じてPLC2のプロジェクト管理部33と通信し、PLC2が対応可能な機能セットを示す識別情報(バージョン情報)を取得する。プロジェクト管理部33は、PLC2が対応可能な機能セットを示すバージョン情報を予め保持しているものとする。バージョン情報がたとえば番号や数値であり、数値が大きくなるほど新しいバージョンを示しており、新しいバージョンは古いバージョンについて後方互換性を有していると仮定する。この場合、選択部54を通じてユーザにより選択された機能セットのバージョン番号が、PLC2がサポートしている機能セットのバージョン番号以下であれば、PLC2はプログラム作成支援装置1により作成されたプロジェクト41を実行できる。一方で、選択部54を通じてユーザにより選択された機能セットのバージョン番号が、PLC2がサポートしている機能セットのバージョン番号を超えていれば、PLC2はプログラム作成支援装置1により作成されたプロジェクト41を実行できない可能性がある。
S13でCPU24(転送部58)は、PLC2がサポートしている機能セットと、プログラム作成支援装置1により作成されたプロジェクト41の機能セットとの間に互換性があるかどうかを判定する。このように転送部58は互換性を判定する判定部を備えている。両者の間に互換性がある場合、CPU24はS14に進む。
S14でCPU24(転送部58)はPLC2に対して通信部26を通じてプロジェクト41を転送する。一方で、両者の間に互換性がない場合、CPU24はS15に進む。S15でCPU24(転送部58)はプロジェクト41の転送を中止し、表示部7に警告を出力する。これにより、PLC2がサポートしていない機能についての実行コードを含むプロジェクト41がPLC2に転送されないようになる。
<プロジェクトの読み出し>
PLC2からプロジェクト41を読み出すことができれば便利であろう。一般にユーザプログラムはデスクトップコンピュータなどを用いてプログラマーによってプログラミングされる。しかし、PLC2が工場に設置されると、PLC2にデスクトップコンピュータを接続することができず、ラップトップコンピュータ(ノートパソコンなど)などの小型のコンピュータを接続することができるに過ぎない。しかし、工場内でユーザプログラムを微修正できれば、ユーザプログラムの改修効率が向上しよう。ここで問題となるのが、PLC2に保持されているプロジェクト41を作成した開発環境のバージョンと、工場に持ち込まれたラップトップコンピュータにインストールされている開発環境のバージョンとの間に互換性が無い場合、再編集は困難であろう。また、再編集が不可能にもかかわらず、読み出しを実行することは時間の浪費となろう。そこで、本実施例では、両者に互換性が無い場合は読み出しを中止することで、ユーザにとって無駄な時間を短縮する。
PLC2からプロジェクト41を読み出すことができれば便利であろう。一般にユーザプログラムはデスクトップコンピュータなどを用いてプログラマーによってプログラミングされる。しかし、PLC2が工場に設置されると、PLC2にデスクトップコンピュータを接続することができず、ラップトップコンピュータ(ノートパソコンなど)などの小型のコンピュータを接続することができるに過ぎない。しかし、工場内でユーザプログラムを微修正できれば、ユーザプログラムの改修効率が向上しよう。ここで問題となるのが、PLC2に保持されているプロジェクト41を作成した開発環境のバージョンと、工場に持ち込まれたラップトップコンピュータにインストールされている開発環境のバージョンとの間に互換性が無い場合、再編集は困難であろう。また、再編集が不可能にもかかわらず、読み出しを実行することは時間の浪費となろう。そこで、本実施例では、両者に互換性が無い場合は読み出しを中止することで、ユーザにとって無駄な時間を短縮する。
図13はプロジェクトの読み出し処理を示したフローチャートである。S21でCPU24(転送部58)は統合開発環境、つまり、編集ソフトウエア50がサポートしている機能セットを示す識別情報(バージョン情報)を編集ソフトウエア50から取得する。
S22でCPU24(転送部58)は通信部26を通じてPLC2のプロジェクト管理部33と通信し、PLC2が保持しているプロジェクト41の作成に使用された機能セットを示す識別情報(バージョン情報)を取得する。バージョン情報はたとえばプロジェクトデータ42やC言語プログラム44の実行ファイルに予め埋め込まれているものとする。
S23でCPU24(転送部58)は、編集ソフトウエア50から取得したバージョン情報とPLC2から取得したバージョン情報とに基づき、プログラム作成支援装置1がサポートしている機能セットと、PLC2が保持しているプロジェクト41の機能セットとの間に互換性があるかどうかを判定する。このように転送部58は互換性の判定部を備えている。両者の間に互換性がある場合、CPU24はS24に進む。
S24でCPU24(転送部58)は通信部26を通じてPLC2からプロジェクト41を読み出す。図11に示したように、CPU24(編集部53)は読み出したプロジェクト41を再編集し、再びPLC2に書き込んでもよい。これにより、工場の現場でプロジェクト41を改変できるようになる。なお、再編集の際にS1で機能セットが変更されてもよい。この場合、変換部56は実行コード(実行ファイル)に埋め込むバージョン情報を変更し、生成部57もプロジェクトデータ42のバージョン情報を変更する。
一方で、両者の間に互換性がない場合、CPU24はS25に進む。S25でCPU24(転送部58)はプロジェクト41の読み出しを中止し、表示部7に警告を出力する。これにより、プログラム作成支援装置1がサポートしていない機能セットを含むプロジェクト41がプログラム作成支援装置1に転送されないようになる。なお、CPU24は、統合開発環境のバージョンアップを促すメッセージを表示部7に表示してもよい。通常、PLC2に機能が追加されるときは、その機能についてのっプログラミングをサポートした統合開発環境もリリースされる。よって、ユーザは、サーバから新しいバージョンの編集ソフトウエア50やシステムデータセット60をダウンロードしてプログラム作成支援装置1にインストールし、統合開発環境をバージョンアップしてもよい。これにより、PLC2からプロジェクト41の読み出して再編集することが可能となる。
<まとめ>
以上説明したように本実施例によれば、PLC2で実行されるユーザプログラムを作成するプログラム作成支援装置1、その制御方法および編集ソフトウエア50が提供される。図7を用いて説明したように編集部53はグラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラム(例:ラダープログラム43)と、高級プログラミング言語で記述されたユーザプログラムである第2プログラム(例:C言語プログラム44)とを編集する。記憶装置25は、第2プログラムを実行コードに変換する際に参照される複数のシステムファイル(例:コンパイルデータセット51)を格納する格納部として機能する。システムファイルには、システムヘッダファイル63、システムライブラリファイル64およびシステムコンパイラオプション62を保存するファイルのうち少なくとも1つが含まれている。上述したようにユーザデータセット65もシステムファイルに含まれてもよい。選択部54は、PLC2が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部として機能する。指定部55は格納部に格納された複数のシステムファイルの中から選択部54により選択された機能セットに対応するシステムファイルを抽出して指定する。変換部56は、指定部55により指定されたシステムファイルを参照し、C言語プログラム44を実行コードに変換する。変換部56は、ラダー図を中間コードに変換する機能を有していてもよい。生成部57は、ラダープログラム43とC言語プログラム44の実行コードとを含むプロジェクト41を生成する。転送部58はプロジェクト41をPLC2に転送する。このようにユーザは選択部54を通じて機能セットを選択すれば、その機能セットに対応したシステムファイルを指定部55が指定するため、ユーザは機能セットとシステムファイルとの関係を理解していなくても、必要なシステムファイルが抽出されて、実行コードの変換に利用されるようになる。つまり、本実施例によれば、PLC2で実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担が軽減される。
以上説明したように本実施例によれば、PLC2で実行されるユーザプログラムを作成するプログラム作成支援装置1、その制御方法および編集ソフトウエア50が提供される。図7を用いて説明したように編集部53はグラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラム(例:ラダープログラム43)と、高級プログラミング言語で記述されたユーザプログラムである第2プログラム(例:C言語プログラム44)とを編集する。記憶装置25は、第2プログラムを実行コードに変換する際に参照される複数のシステムファイル(例:コンパイルデータセット51)を格納する格納部として機能する。システムファイルには、システムヘッダファイル63、システムライブラリファイル64およびシステムコンパイラオプション62を保存するファイルのうち少なくとも1つが含まれている。上述したようにユーザデータセット65もシステムファイルに含まれてもよい。選択部54は、PLC2が有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部として機能する。指定部55は格納部に格納された複数のシステムファイルの中から選択部54により選択された機能セットに対応するシステムファイルを抽出して指定する。変換部56は、指定部55により指定されたシステムファイルを参照し、C言語プログラム44を実行コードに変換する。変換部56は、ラダー図を中間コードに変換する機能を有していてもよい。生成部57は、ラダープログラム43とC言語プログラム44の実行コードとを含むプロジェクト41を生成する。転送部58はプロジェクト41をPLC2に転送する。このようにユーザは選択部54を通じて機能セットを選択すれば、その機能セットに対応したシステムファイルを指定部55が指定するため、ユーザは機能セットとシステムファイルとの関係を理解していなくても、必要なシステムファイルが抽出されて、実行コードの変換に利用されるようになる。つまり、本実施例によれば、PLC2で実行されるユーザプログラムを開発するための開発環境においてユーザによるシステムファイルの選択の負担が軽減される。
PLC2の特徴的な機能としてデバイスがある。本実施例では、PLC2において第1プログラムと第2プログラムはデバイスを通じて情報を受け渡すようにそれぞれプログラミングされている。これにより、言語の異なる複数のプログラムがデバイスを通じて連携できるようになる。
関連付データ52に関して説明したように、記憶装置25は、複数の機能セットのそれぞれを示す機能セット識別情報(例:バージョン情報)と、各機能セットに対応するシステムファイルを示すシステムファイル情報(例:ファイル名やパス名など)とを関連付けて記憶する記憶部として機能してもよい。指定部55は、選択部54により選択された機能セットの機能セット識別情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを指定してもよい。このように関連付データ52を予め用意しておけば、ユーザにより選択された機能セットに必要なシステムファイルを容易に抽出することが可能となろう。
たとえば、複数の機能セットはそれぞれ高級プログラミング言語による開発環境のバージョンに応じて異なっていてもよい。たとえば、機能セットは、PLC2が備えるソフトウエアの機能やハードウエアの機能が拡張されることで、増加することがある。ソフトウエアの機能は、制御プログラム40がアップデートされると拡張されることがある。ハードウエアの機能は新しい拡張ユニット4の入手および接続により拡張されうる。このようにして拡張された機能を制御するためには新しいシステムヘッダファイル63やシステムライブラリファイル64などが必要となることが多い。よって、PLC2の機能が拡張されると、統合開発環境もアップデートされる。このようなアップデートが繰り返されると、PLC2には様々な機能セットが存在するとともに、様々なバージョンの統合開発環境も存在するようになる。つまり、複数の機能セットは統合開発環境のバージョンに応じて異なってくることもある。したがって、複数の機能セットが混在する環境では、機能セットに対応する適切なシステムファイル群をユーザが選択することが困難となりやすい。特に、PLC2のバージョンが古いにもかかわらず、統合開発環境のバージョンが新しい場合には、過去のバージョンのシステムファイル群が必要となることがある。本実施例によれば、ユーザは機能セットを選択すれば、システムファイル群が変換部56に指定されるため、ユーザのプログラミングの負担が軽減されよう。
変換部56は、選択部54により選択された機能セットを示す機能セット識別情報を実行コードに埋め込んでもよい。こにより、実行コードを解析すれば、どの機能セット用の実行コードであるかを容易に特定できるようになろう。とりわけ、ユーザプログラムの再編集の際に必要な機能セットを容易に特定できるようになろう。
生成部57は、選択部54により選択された機能セットを示す機能セット識別情報を、プロジェクト41を管理するためのプロジェクトデータ42に埋め込んでもよい。プロジェクトデータ42はプロジェクト41を統括的に管理するためのデータであり、PLC2に転送されることが多い。よって、PLC2に保持されているプロジェクトデータ42を参照すれば、プロジェクト41がどの機能セットに対応しているかを容易に判別できるようになろう。とりわけ、ユーザプログラムの再編集の際に必要な機能セットを容易に特定できるようになろう。
図12を用いて説明したように、転送部58は、PLC2がサポートしている機能セットを示す機能セット識別情報をプログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と選択部54により選択された機能セットを示す機能セット識別情報とに基づき、PLC2がサポートしている機能セットと選択部54により選択された機能セットとの間に互換性があるかどうかを判定してもよい。互換性がある場合に、転送部58は、プロジェクト41をPLC2に転送し、互換性がない場合に、プロジェクト41をPLC2に転送しない。これによりPLC2がサポートしていない機能を制御するプログラムを含むプロジェクト41がPLC2に転送されないようになる。
上述したように、複数のシステムファイルは、格納部が備える複数の格納領域のうち各機能セットごとに異なる格納領域(例:フォルダなど)に格納されていてもよい。これにより、同一ファイル名であるものの、バージョンの異なる複数のシステムファイルをプログラム作成支援装置1に保持できるようになる。これにより、古いバージョンのシステムファイルを必要とするような機能セット用のユーザプログラムも新しいバージョンの統合開発環境において編集して実行コードを生成できるようになろう。
指定部55は、選択部54により選択された機能セットに対応する格納領域に格納されているシステムファイルを指定してもよい。たとえば、機能セットごとにインクルードパスを変更するようなケースであっても、ユーザに成り代わって指定部55がインクルードパスを変更してもよい。これにより、ユーザの負担が軽減されよう。
図13を用いて説明したように、転送部58は、PLC2に保持されているプロジェクト41を読み出すように構成されていてもよい。編集部53は、読み出されたプロジェクト41に含まれている第1プログラムおよび第2プログラムを再編集するように構成されていてもよい。転送部58は、編集部53により再編集された第1プログラムおよび第2プログラムを含むプロジェクト41をPLC2に転送するように構成されていてもよい。上述したように、PLC2が工場に設置された後にもプロジェクト41は改変されることがある。この場合に、PLC2に保持されているプロジェクト41を作成したコンピュータを工場に持ち込めるとは限らない。一般には、ノートパソコンなどポータブルタイプのコンピュータであれば、工場でも持ち込みやすい。このようなケースでは、PLC2に保持されているプロジェクト41を作成したコンピュータと、工場に設置されているPLC2に接続されたコンピュータとが異なることになる。したがって、工場に設置されているPLC2からノートパソコンなどにプロジェクト41を読み出せるようにすれば、プロジェクト41を工場内で迅速に改変することが可能となろう。
指定部55は、転送部58によりPLC2から読み出されたプロジェクト41に必要となるシステムファイルを指定するように構成されていてもよい。プロジェクト41に含まれているプロジェクトデータ42に機能セット識別情報が埋め込まれている場合は機能セット識別情報から容易にシステムファイルを指定できるようになろう。プロジェクト41に予めシステムファイルが含まれていれば、指定部55はそのシステムファイルを変換部56に指定してもよい。変換部56は、指定部55により新たに指定されたシステムファイルを参照し、第2プログラムを実行コードに変換するように構成されていてもよい。これにより機能セットやシステムファイルの互換性を維持したまま、ユーザプログラムを再編集して実行コードに変換することが容易になろう。
図13を用いて説明したように、転送部58は、PLC2がサポートしている機能セットを示す機能セット識別情報をPLC2から取得し、当該取得した機能セット識別情報と選択部54により選択された機能セットを示す機能セット識別情報とに基づき、PLC2がサポートしている機能セットと選択部54により選択された機能セットとの間に互換性があるかどうかを判定してもよい。互換性がある場合に限り、転送部58は、PLC2に保持されているプロジェクトデータを読み出してもよい。これにより無駄な転送を抑制することが可能となり、ユーザには統合開発環境のバージョンアップなどを促すことが可能となる。たとえば、表示部7は、統合開発環境のバージョンアップなどを促す統合開発環境のバージョンアップなどを促すメッセージを表示してもよい。
Claims (14)
- プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置であって、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムと、高級プログラミング言語で記述されたユーザプログラムである第2プログラムとを編集する編集部と、
前記第2プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部と、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する機能セット選択部と、
前記格納部に格納された複数のシステムファイルの中から前記機能セット選択部により選択された機能セットに対応するシステムファイルを指定する指定部と、
前記指定部により指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換する変換部と、
前記第1プログラムと前記第2プログラムの実行コードとを含むプロジェクトを生成する生成部と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する転送部と
を有することを特徴とするプログラム作成支援装置。 - 前記プログラマブル・ロジック・コントローラにおいて前記第1プログラムと前記第2プログラムはデバイスを通じて情報を受け渡すようにそれぞれプログラミングされていることを特徴とする請求項1に記載のプログラム作成支援装置。
- 前記複数の機能セットのそれぞれを示す機能セット識別情報と、各機能セットに対応するシステムファイルを示すシステムファイル情報とを関連付けて記憶する記憶部をさらに有し、前記指定部は、前記機能セット選択部により選択された機能セットの機能セット識別情報に関連付けられているシステムファイル情報を抽出し、当該抽出されたシステムファイル情報に基づきシステムファイルを指定することを特徴とする請求項1または2に記載のプログラム作成支援装置。
- 前記システムファイルには、システムヘッダファイル、システムライブラリファイルおよびシステムコンパイラオプションを保存するファイルのうち少なくとも1つが含まれていることを特徴とする請求項1ないし3のいずれか1項に記載のプログラム作成支援装置。
- 前記複数の機能セットはそれぞれ前記高級プログラミング言語による開発環境のバージョンに応じて異なっていることを特徴とする請求項1ないし4のいずれか1項に記載のプログラム作成支援装置。
- 前記変換部は、前記機能セット選択部により選択された機能セットを示す機能セット識別情報を前記実行コードに埋め込むことを特徴とする請求項1ないし5のいずれか1項に記載のプログラム作成支援装置。
- 前記生成部は、前記機能セット選択部により選択された機能セットを示す機能セット識別情報を、前記プロジェクトを管理するためのプロジェクトデータに埋め込むことを特徴とする請求項1ないし6のいずれか1項に記載のプログラム作成支援装置。
- 前記転送部は、前記プログラマブル・ロジック・コントローラが対応している機能セットを示す機能セット識別情報を前記プログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報とに基づき、前記プログラマブル・ロジック・コントローラが対応している機能セットと前記機能セット選択部により選択された機能セットとの間に互換性があるかどうかを判定し、互換性がある場合に、前記プロジェクトを前記プログラマブル・ロジック・コントローラに転送し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報との間に互換性がない場合に、前記プロジェクトを前記プログラマブル・ロジック・コントローラに転送しないことを特徴とする請求項1ないし7のいずれか1項に記載のプログラム作成支援装置。
- 前記複数のシステムファイルは、各機能セットごとに前記格納部の異なる格納領域に格納されており、
前記指定部は、前記機能セット選択部により選択された機能セットに対応する格納領域に格納されているシステムファイルを指定することを特徴とする請求項1ないし8のいずれか1項に記載のプログラム作成支援装置。 - 前記転送部は、前記プログラマブル・ロジック・コントローラに保持されている前記プロジェクトを読み出すように構成されており、
前記編集部は、前記読み出されたプロジェクトに含まれている前記第1プログラムおよび前記第2プログラムを再編集するように構成されており、
前記転送部は、前記編集部により再編集された前記第1プログラムおよび前記第2プログラムを含むプロジェクトを前記プログラマブル・ロジック・コントローラに転送するように構成されていることを特徴とする請求項1ないし8のいずれか1項に記載のプログラム作成支援装置。 - 前記指定部は、前記転送部により前記プログラマブル・ロジック・コントローラから読み出された前記プロジェクトに必要となるシステムファイルを指定するように構成されており、
前記変換部は、前記指定部により新たに指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換するように構成されていることを特徴とする請求項10に記載のプログラム作成支援装置。 - 前記転送部は、前記プログラマブル・ロジック・コントローラが対応している機能セットを示す機能セット識別情報を前記プログラマブル・ロジック・コントローラから取得し、当該取得した機能セット識別情報と前記機能セット選択部により選択された機能セットを示す機能セット識別情報とに基づき、前記プログラマブル・ロジック・コントローラが対応している機能セットと前記機能セット選択部により選択された機能セットとの間に互換性があるかどうかを判定し、互換性がある場合に、前記プログラマブル・ロジック・コントローラに保持されている前記プロジェクトを読み出すことを特徴とする請求項10または11に記載のプログラム作成支援装置。
- プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置の制御方法であって、前記プログラム作成支援装置は、高級プログラミング言語で記述されたユーザプログラムである第2プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部を有しており、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する工程と、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムと、前記第2プログラムとを編集する工程と、
前記格納部に格納された複数のシステムファイルの中から選択された機能セットに対応するシステムファイルを指定する工程と、
前記指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換する工程と、
前記第1プログラムと前記第2プログラムの実行コードとを含むプロジェクトを生成する工程と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する工程と
を有することを特徴とするプログラム作成支援装置の制御方法。 - プログラマブル・ロジック・コントローラで実行されるユーザプログラムを作成するプログラム作成支援装置で実行されるプログラムであって、前記プログラム作成支援装置は、高級プログラミング言語で記述されたユーザプログラムである第2プログラムを実行コードに変換する際に参照される複数のシステムファイルを格納する格納部を有しており、
前記プログラマブル・ロジック・コントローラが有する機能の組み合わせである機能セットを複数の機能セットのうちから選択する工程と、
グラフィカルプログラミング言語で記述されたユーザプログラムである第1プログラムと、前記第2プログラムとを編集する工程と、
前記格納部に格納された複数のシステムファイルの中から選択された機能セットに対応するシステムファイルを指定する工程と、
前記指定されたシステムファイルを参照し、前記第2プログラムを実行コードに変換する工程と、
前記第1プログラムと前記第2プログラムの実行コードとを含むプロジェクトを生成する工程と、
前記プロジェクを前記プログラマブル・ロジック・コントローラに転送する工程と
を前記プログラム作成支援装置に実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107842A JP2016224559A (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015107842A JP2016224559A (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2016224559A true JP2016224559A (ja) | 2016-12-28 |
Family
ID=57748174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015107842A Pending JP2016224559A (ja) | 2015-05-27 | 2015-05-27 | プログラム作成支援装置、制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2016224559A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020179581A1 (ja) * | 2019-03-06 | 2020-09-10 | オムロン株式会社 | 制御装置およびソフトウェアのデプロイ方法 |
CN112219172A (zh) * | 2018-07-13 | 2021-01-12 | 欧姆龙株式会社 | 程序开发装置以及控制器 |
US11656596B2 (en) | 2018-10-23 | 2023-05-23 | Keyence Corporation | Programmable logic controller and program creation supporting apparatus |
-
2015
- 2015-05-27 JP JP2015107842A patent/JP2016224559A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112219172A (zh) * | 2018-07-13 | 2021-01-12 | 欧姆龙株式会社 | 程序开发装置以及控制器 |
US11656596B2 (en) | 2018-10-23 | 2023-05-23 | Keyence Corporation | Programmable logic controller and program creation supporting apparatus |
WO2020179581A1 (ja) * | 2019-03-06 | 2020-09-10 | オムロン株式会社 | 制御装置およびソフトウェアのデプロイ方法 |
JP2020144594A (ja) * | 2019-03-06 | 2020-09-10 | オムロン株式会社 | 制御装置およびソフトウェアのデプロイ方法 |
JP7036064B2 (ja) | 2019-03-06 | 2022-03-15 | オムロン株式会社 | 制御装置およびソフトウェアのデプロイ方法 |
US11907735B2 (en) | 2019-03-06 | 2024-02-20 | Omron Corporation | Control device and method for deployment of software |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5039428B2 (ja) | プログラマブルコントローラ及びplcシステム | |
JP4828271B2 (ja) | 複数osバージョン用ソフトウェア生成装置及び複数osバージョン用ソフトウェア生成支援プログラム | |
JP6550269B2 (ja) | プログラム作成支援装置、制御方法およびプログラム | |
JP2008282362A (ja) | プログラム編集支援装置、コンピュータプログラム、プログラム編集支援方法及びplcシステム | |
JP6550268B2 (ja) | プログラム作成支援装置、プログラムおよび判別方法 | |
JP2020071833A (ja) | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム | |
JP2009146229A (ja) | プログラマブルコントローラシステム | |
CN115390846A (zh) | 编译构建方法、装置、电子设备和存储介质 | |
US9058240B2 (en) | Multi-context remote development | |
JP2016224559A (ja) | プログラム作成支援装置、制御方法およびプログラム | |
JP2017142794A (ja) | プログラマブルコントローラシステム、そのコントローラ、支援装置、hci装置、二重化コントローラシステム | |
JP2009157533A (ja) | プログラマブルコントローラシステム | |
JP5849592B2 (ja) | プログラマブルコントローラシステム、そのプログラミング装置、プログラマブルコントローラ、プログラム、デバッグ方法 | |
US11221828B2 (en) | Support device and support program | |
CN115525280A (zh) | 前端代码生成方法及装置、存储介质及电子设备 | |
CN113939780A (zh) | 支持装置以及支持程序 | |
WO2012104959A1 (ja) | モーションsfcプログラム部品作成装置 | |
JP4737441B2 (ja) | Plcシステム | |
CN114072740B (zh) | 信息处理装置、存储介质以及支持系统 | |
JP2008003841A (ja) | ビルド処理方法、ビルド処理装置、及びプログラム | |
JP5589670B2 (ja) | デバッグ方法 | |
CN117136342A (zh) | 开发支持装置、开发支持装置的控制方法、信息处理程序以及记录介质 | |
JP2012133567A (ja) | 情報処理装置、情報処理装置の制御方法、プログラム。 | |
JP4877257B2 (ja) | プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム | |
JP7631921B2 (ja) | 開発支援装置、開発支援方法および開発支援プログラム |