(58)【調査した分野】(Int.Cl.,DB名)
【図面の簡単な説明】
【0013】
【
図1】複数のラダープログラムの間で信号アドレス空間を共有する構成を取る場合における本発明のラダープログラムによる信号アドレス空間に対するアクセス管理方法を説明する図である。
【
図2】プログラマブルコントローラで実行されるラダープログラムごとに独立した信号アドレス空間を配置する多系統プログラマブルコントローラ構成を取る場合における本発明のラダープログラムによる信号アドレス空間に対するアクセス管理方法を説明する図である。
【
図3】本発明の一実施形態によるプログラマブルコントローラにおいて、ラダープログラムから「使用アドレス設定テーブル」及び「アドレス共有情報」を抽出する図である。
【
図4】ラダープログラムに埋め込まれている使用アドレス設定テーブルとアドレス共有情報の例を示す図である。
【
図6】本発明の一実施形態によるプログラマブルコントローラ上でラダープログラム実行開始時に行われる処理の全体概略的なフローチャートである。
【
図7】本発明の一実施形態によるプログラマブルコントローラによる書き込み範囲情報の作成処理の概略的なフローチャートである。
【
図8】本発明の一実施形態によるプログラマブルコントローラによる書き込み範囲情報のチェック処理の概略的なフローチャートである。
【
図9】本発明の一実施形態によるプログラマブルコントローラによるアドレス範囲の重複チェック処理の概略的なフローチャートである。
【
図10】本発明の一実施形態によるプログラマブルコントローラの概略的なハードウェア構成図である。
【
図11】本発明の一実施形態によるプログラマブルコントローラの概略的な機能ブロック図である。
【
図12】本発明の一実施形態によるプログラマブルコントローラにおいて、ラダープログラムを作成・編集してコンパイルするまでの動作を示す図である。
【
図13】本発明の一実施形態によるプログラマブルコントローラにおいて、実行形式のラダープログラムである分割ラダー1、分割ラダー2をプログラマブルコントローラ上で実行する際の動作を示す図である。
【
図14】本発明の一実施形態によるプログラマブルコントローラにおいて、ラダープログラムを作成・編集してコンパイルするまでの動作を示す図である。
【
図15】本発明の一実施形態によるプログラマブルコントローラにおいて、実行形式のラダープログラムであるPLC1用ラダー、PLC2用ラダーを実行する際の信号アドレスのマッピング動作を示す図である。
【
図16】本発明の一実施形態によるプログラマブルコントローラにおいて、実行形式のラダープログラムであるPLC1用ラダー、PLC2用ラダーを実行する際の動作を示す図である。
【
図17】従来技術によるプログラマブルコントローラの分割ラダー構成について説明する図である。
【
図18】従来技術によるプログラマブルコントローラの多系統プログラマブルコントローラ構成について説明する図である。
【
図19】従来技術による分割ラダー構成でのラダープログラムの作成・編集方法について説明する図である。
【
図20】従来技術による分割ラダー構成でのラダープログラムの作成・編集方法の問題点について説明する図である。
【
図21】従来技術による多系統プログラマブルコントローラ構成でのラダープログラムの実行方法について説明する図である。
【
図22】従来技術による多系統プログラマブルコントローラ構成でのラダープログラムの実行方法の問題点について説明する図である。
【
図23】従来技術による多系統プログラマブルコントローラ構成でのラダープログラムの改良された実行方法について説明する図である。
【発明を実施するための形態】
【0014】
以下、本発明の実施形態を図面と共に説明する。はじめに、
図1,2を用いて本発明のラダープログラムによる信号アドレス空間に対するアクセス管理方法の概要について説明する。
図1は、複数のラダープログラムの間で信号アドレス空間を共有する構成を取る場合における本発明のラダープログラムによる信号アドレス空間に対するアクセス管理方法を説明する図である。
本発明の一実施形態によるアクセス管理方法では、複数のラダープログラムの間で信号アドレス空間を共有する分割ラダー構成を取る場合、各信号アドレス空間の一部領域についてアクセス可能なラダープログラムを定義する信号アドレス設定情報をあらかじめ作成するようにし、各ラダープログラムの編集時又はコンパイル時(実行形式オブジェクトの作成時)には、各ラダープログラムごとに、該ラダープログラムが読み書きする信号アドレス空間の範囲が、信号アドレス設定情報に定義された書き込み範囲と矛盾がないことを確認する。そして、各ラダープログラムのコンパイル時(ラダープログラムの実行形式オブジェクトの作成時)に、信号アドレス設定情報に定義された自身のラダープログラムに関連する書込み範囲の情報を使用アドレス設定テーブルとして実行形式オブジェクトに含めるようにする。
【0015】
その後、プログラマブルコントローラはラダープログラムの実行に先駆けて、実行対象となる各ラダープログラムの実行形式オブジェクトから使用アドレス設定テーブルを取り出し、使用アドレス設定テーブルを相互に付き合わせることにより同じアドレス空間に関する書き込み範囲の情報にラダープログラム間で重なりがないかチェックする。そして、重なりがなければ重複書き込みはないものと判断してラダープログラムの実行を開始し、重なりが検出された場合には重複書き込みの可能性があるため、ラダープログラムは実行せずにアラーム状態にする。
【0016】
図2は、プログラマブルコントローラで実行されるラダープログラムごとに独立した信号アドレス空間を配置する多系統プログラマブルコントローラ構成を取る場合における本発明のラダープログラムによる信号アドレス空間に対するアクセス管理方法を説明する図である。
本発明の一実施形態によるアクセス管理方法では、プログラマブルコントローラで実行されるラダープログラムごとに独立した信号アドレス空間を配置する多系統プログラマブルコントローラ構成を取る場合、各ラダープログラムについて、他のラダープログラムに属する信号アドレス空間の一部領域を共有することを信号アドレス設定情報に定義できるようにする。その際、共有する信号アドレス領域についてアクセス範囲を定義できるようにする。そして、本発明の一実施形態によるアクセス管理方法では、各ラダープログラムのコンパイル時(ラダープログラムの実行形式オブジェクトの作成時)に、信号アドレス設定情報に含まれる自ラダープログラムに関連する信号アドレス領域の共有に係る情報をアドレス共有情報として実行形式オブジェクトに含めるようにする。
【0017】
その後、プログラマブルコントローラはラダープログラムの実行に先駆けて、実行対象となる各ラダープログラムの実行形式オブジェクトからアドレス共有情報を取り出し、各ラダープログラムの実行時に参照されるアドレス領域のマッピングをアドレス共有情報に基づいて変更して、アドレス共有情報の設定どおりに共有されたアドレス領域を参照できるようにする。また、プログラマブルコントローラはラダープログラムの実行に先駆けて、同じアドレス空間に関する書き込み範囲の情報にラダープログラム間で重なりがないかをアドレス共有情報も加味してチェックする。
【0018】
以下では、
図3〜5を用いて本発明の一実施形態によるプログラマブルコントローラの概略的な動作について説明する。以下の説明では、プログラマブルコントローラが2つの系統PLC1、PLC2を有しており(多系統プログラマブルコントローラ構成)、PLC1では2つのラダープログラムを動作させ(分割ラダー構成)、PLC2では1つのラダープログラムを動作させた場合の例を説明している。
【0019】
本発明の一実施形態によるプログラマブルコントローラは、ラダープログラムを実行するに先立って、
図3に示すように、各ラダープログラムに格納される「使用アドレス設定テーブル」及び「アドレス共有情報」を抽出する。
図4は、PLC1用分割ラダー1、PLC1用分割ラダー2、PLC2用ラダーにそれぞれ埋め込まれている使用アドレス設定テーブルとアドレス共有情報の例を示している。
図4に示す例では、PLC1用分割ラダー1、PLC1用分割ラダー2にはアドレス共有情報は埋め込まれておらず、また、PLC2用ラダーには、PLC2用ラダーからPLC1のEアドレスとGアドレスを参照する設定が為されたアドレス共有情報が埋め込まれている。
【0020】
本発明の一実施形態によるプログラマブルコントローラは、各ラダープログラムから抽出した使用アドレス設定テーブルに基づいて書き込み範囲情報を作成する。
図5は、書き込み範囲情報の例を示している。書き込み範囲情報は、各ラダープログラムから抽出された「使用アドレス設定テーブル」及び「アドレス共有情報」に基づいて作成される、アクセス元のラダープログラムと、アクセス先の信号アドレス空間及びアクセス先のアドレス範囲との関係を総括した情報である。
図5に示すように、ラダープログラムに共有アドレス情報が埋め込まれている場合には、プログラマブルコントローラは、該ラダープログラムの使用アドレス設定テーブルに設定される信号アドレス空間とアドレス範囲を、共有アドレス情報の設定に基づいてマッピング(変換)する。
そして、本発明の一実施形態によるプログラマブルコントローラは、書き込み範囲情報に基づいて同一の信号アドレス空間のアドレス範囲に対して、2以上のラダープログラムから書込みが行われないかをチェックし、そのチェック結果に基づいてラダープログラムを実行開始するか否かを判定する。
【0021】
次に、
図6〜9を用いて本発明の一実施形態によるプログラマブルコントローラのより具体的な動作(処理)について説明する。
図6は、本発明の一実施形態によるプログラマブルコントローラ上でラダープログラム実行開始時に行われる処理の全体概略的なフローチャートである。
●[ステップSA01]プログラマブルコントローラは、実行対象となる複数のラダープログラムの内で最初のラダープログラムを選択する。
●[ステップSA02]プログラマブルコントローラは、選択したラダープログラムの「使用アドレス設定テーブル」を抽出する。
●[ステップSA03]プログラマブルコントローラは、選択したラダープログラムの「アドレス共有情報」を抽出する。
●[ステップSA04]プログラマブルコントローラは、抽出した「使用アドレス設定テーブル」及び「アドレス共有情報」に基づいて「書き込み範囲情報」の作成処理を実行する。
【0022】
●[ステップSA05]プログラマブルコントローラは、まだ「使用アドレス設定テーブル」及び「アドレス共有情報」を抽出していないラダープログラムがあるか否かを判定する。次のラダープログラムがある場合にはステップSA06へ処理を移行し、無い場合にはステップSA07へ処理を移行する。
●[ステップSA06]プログラマブルコントローラは、次のラダープログラムを選択してステップSA02へ処理を移行する。
●[ステップSA07]プログラマブルコントローラは、作成した「書き込み範囲情報」のチェック処理(
図6のステップSA04)を実行する。
【0023】
図7は、本発明の一実施形態によるプログラマブルコントローラによる書き込み範囲情報の作成処理(
図6のステップSA04)の概略的なフローチャートである。
●[ステップSB01]プログラマブルコントローラは、抽出した「使用アドレス設定テーブル」から最初のデータを取得する。
●[ステップSB02]プログラマブルコントローラは、取得データの信号アドレスをアドレス共有情報から検索する。
●[ステップSB03]プログラマブルコントローラは、ステップSB02で検索した結果、取得データの信号アドレスに該当する信号アドレスがアドレス共有情報に含まれているか否かを判定する。含まれていない場合にはステップSB04へ処理を移行し、含まれている場合にはステップSB05へ処理を移行する。
【0024】
●[ステップSB04]プログラマブルコントローラは、ラダープログラムの系統を該ラダープログラムのアクセス先として信号アドレス空間として取得データに追加する。
●[ステップSB05]プログラマブルコントローラは、アドレス共有情報に従って、取得データの信号アドレスを共有先アドレスに変換し、共有先アドレス空間の情報を取得データに追加する。
●[ステップSB06]プログラマブルコントローラは、「書き込み範囲情報」に対して取得データと信号アドレス空間の情報を追加する。
【0025】
●[ステップSB07]プログラマブルコントローラは、「使用アドレス設定テーブル」に次にデータがあるか否かを判定する。次のデータが無い場合には本処理を終了し、次のデータがある場合にはステップSB08へと処理を移行する。
●[ステップSB08]プログラマブルコントローラは、「使用アドレス設定テーブル」から次のデータを取得してステップSB02へと処理を移行する。
【0026】
図8は、本発明の一実施形態によるプログラマブルコントローラによる書き込み範囲情報のチェック処理(
図6のステップSA07)の概略的なフローチャートである。
●[ステップSC01]プログラマブルコントローラは、「書き込み範囲情報」の最初のデータを取得する。
●[ステップSC02]プログラマブルコントローラは、取得したデータをチェック元データとしたアドレス範囲の重複チェック処理を実行する。
●[ステップSC03]プログラマブルコントローラは、ステップSC02で実行したチェック処理の結果、アドレス範囲に重複があったか否かを判定する。アドレス範囲に重複があった場合にはステップSC04へ処理を移行し、重複が無かった場合にはステップSC06へ処理を移行する。
【0027】
●[ステップSC04]プログラマブルコントローラは、信号アドレスが重複している旨アラームで通知する。アラームは表示や音、ランプで通知するようにしてもよく、表示で通知する場合には重複している信号アドレス空間と信号アドレス領域、重複しているラダープログラムに係る情報を制御装置が備える表示装置へと表示する。
●[ステップSC05]プログラマブルコントローラは、ラダープログラムの実行を中止して、本処理を終了する。
【0028】
●[ステップSC06]プログラマブルコントローラは、「書き込み範囲情報」に次のデータがあるか否かを判定する。次のデータがある場合にはステップSC07へ処理を移行し、次のデータが無い場合にはステップSC08へと処理を移行する。
●[ステップSC07]プログラマブルコントローラは、プログラマブルコントローラは、「書き込み範囲情報」から次のデータを取得してステップSC02へ処理を移行する。
●[ステップSC08]プログラマブルコントローラは、ラダープログラムの実行を開始して、本処理を終了する。
【0029】
図9は、本発明の一実施形態によるプログラマブルコントローラによるアドレス範囲の重複チェック処理(
図8のステップSC02)の概略的なフローチャートである。
●[ステップSD01]プログラマブルコントローラは、「書き込み範囲情報」からチェック元データの次のデータをチェック対象データとして選出する。
●[ステップSD02]プログラマブルコントローラは、チェック元データとチェック対象データとについて、お互いの「アドレス空間」と、「アドレス範囲」のアドレス種別(アドレスの先頭文字で表されるアドレスの種類。例えば「G1000」では「G」がアドレス種別となり、CNCのインタフェースアドレスを意味している)とをそれぞれ比較する。
●[ステップSD03]プログラマブルコントローラは、ステップSD02での比較処理の結果、「アドレス空間」と、「アドレス範囲」のアドレス種別との両方が一致したかどうかを判定する。両方とも一致した場合にはステップSD04へ処理を移行し、いずれか又は両方が一致しなかった場合にはステップSD07へ処理を移行する。
【0030】
●[ステップSD04]プログラマブルコントローラは、チェック元データとチェック対象データの「アドレス範囲」を比較する。
●[ステップSD05]プログラマブルコントローラは、ステップSD04の比較処理の結果、「アドレス範囲」が重複しているか否かを判定する。アドレス範囲が重複している場合にはステップSD06へ処理を移行し、重複していない場合にはステップSD07へ処理を移行する。
●[ステップSD06]プログラマブルコントローラは、アドレス範囲が重複しているとして本処理を終了する。
【0031】
●[ステップSD07]プログラマブルコントローラは、現在のチェック対象データが「書き込み範囲情報」の最後のデータであるか否かを判定する。最後のデータである場合にはステップSD09へ処理を移行し、最後のデータで無い場合にはステップSD08へ処理を移行する。
●[ステップSD08]プログラマブルコントローラは、「書き込み範囲情報」の現在のチェック対象データの次のデータをチェック対象データとして選出し、ステップSD02へ処理を移行する。
●[ステップSD09]プログラマブルコントローラは、アドレス範囲が重複していないとして本処理を終了する。
【0032】
以下では、上記した動作を実現する本発明の一実施形態によるプログラマブルコントローラの構成について説明する。
図10は、本発明の一実施形態によるプログラマブルコントローラの概略的なハードウェア構成図である。プログラマブルコントローラ1はシーケンス制御を実行するCPU10を有し、該CPU10には、バス19を介してROM11、RAM12、不揮発性メモリ13、入出力回路14、インタフェース15が接続されている。インタフェース15にはプログラミング装置2が接続されており、プログラミング装置2上で作成・編集され、実行形式オブジェクトへとコンパイルされたラダープログラムをインタフェース15を介して取得し、不揮発性メモリ13へと記録できるように構成されている。また、バス19にはバスインタフェース18を介して数値制御装置等の制御装置に接続可能になっている。入出力回路14にはI/Oユニット20を介して工作機械や周辺装置等の制御しようとする機械の各種アクチュエータやセンサなどに接続されている。
【0033】
ROM11には、プログラマブルコントローラ1のCPU10のためのシステムプログラムが記憶されており、該システムプログラムを実行することによりCPU10はプログラマブルコントローラ1の各部の動作を制御する。また、不揮発性メモリには、プログラマブルコントローラ1が実行するラダープログラムが記憶される。ラダープログラムの実行時にはCPU10は、不揮発性メモリ13から該ラダープログラムを読み出し、RAM12の実行用のラダープログラム格納領域へと格納し、このRAM12に記憶された実行用のラダープログラムを順次実行する。
【0034】
RAM12には、プログラマブルコントローラ1がラダープログラムを実行するときの各種信号を記憶する実行用信号メモリ領域が設けられており、該実行用信号メモリ領域には、ラダープログラムを実行する際に必要となる入力信号、出力信号、ラダープログラムにおける内部リレーの状態等を記憶する領域が設けられている。
【0035】
図11は、本発明の一実施形態によるプログラマブルコントローラと、プログラマブルコントローラに関連するプログラミング装置の概略的な機能ブロック図である。
図11に示した各機能ブロックは、
図10に示したプログラマブルコントローラ1が備えるCPU10が、システムプログラムを実行し、プログラマブルコントローラ1の各部の動作を制御することにより実現される。本実施形態のプログラマブルコントローラ1は、信号アドレス設定抽出部100、信号アドレス重複判定部110、ラダープログラム実行部120を備える。
【0036】
信号アドレス設定抽出部100は、不揮発性メモリ13に記憶された実行対象となる実行形式のラダープログラム180から使用アドレス設定テーブル及び共有アドレス情報を抽出する。
【0037】
信号アドレス重複判定部110は、信号アドレス設定抽出部100が抽出した使用アドレス設定テーブル及び共有アドレス情報に基づいて、各ラダープログラム180による書込み範囲のアドレスが重複しているか否かの判定を行い、判定結果をラダープログラム実行部120へと出力する。
【0038】
そして、ラダープログラム実行部120は、信号アドレス重複判定部110による各ラダープログラム180による書込み範囲のアドレスが重複していないと判定された場合に、ラダープログラム180の実行を行い、一方で、アドレスが重複していると判定された場合には、ラダープログラム180の実行を中止し、バスインタフェース18等を介して書き込み範囲のアドレスが重複しているラダープログラム180に関する情報と共にアラームを出力する。
【0039】
プログラミング装置2は、プログラマブルコントローラ1に対して実行形式のラダープログラム180を共有する装置であり、数値制御装置やパソコンなどにラダープログラムの編集・コンパイル用のシステムソフトを導入することにより構成される。プログラミング装置2からプログラマブルコントローラ1への実行形式のラダープログラム180の供給は、プログラマブルコントローラ1に備えられたインタフェース15を介して行われる。プログラミング装置2は、プログラム編集部200、信号アドレスチェック部210、実行形式オブジェクト作成部220、使用アドレス設定テーブル作成部230、アドレス共有情報作成部240を備える。
【0040】
プログラム編集部200はオペレータからの操作を受け付けてラダープログラム260の作成及び編集を行うための機能手段である。プログラム編集部200は、画面上にラダープログラム260をグラフィカルに表示し、該ラダープログラムに対してリレー回路の配置操作や結線操作などが行えるようなものとして構成しても良い。プログラム編集部200は、オペレータの操作により作成・編集されたラダープログラム260を図示しないプログラミング装置2のメモリ上に記憶する。プログラム編集部200は、オペレータからの編集操作を受けるたびに、その編集操作による編集内容について信号アドレスのチェックを行うように信号アドレスチェック部210へと指令するようにしても良く、その際に、その編集操作による編集内容が信号アドレス設定情報250との間で信号アドレスへの書込みに矛盾がある編集内容である場合には当該編集操作に対してエラーを表示して受け付けないようにしても良い。
【0041】
信号アドレスチェック部210は、プログラム編集部200又は実行形式オブジェクト作成部220からの指令に基づいて、あらかじめ設定されて図示しないプログラミング装置2のメモリ上に記憶されている信号アドレス設定情報250からラダープログラム260に関連する書込み範囲の情報を参照し、ラダープログラム260内で書込み対象とされている信号アドレスが信号アドレス設定情報250に定義されている書込み範囲の情報と矛盾していないか(信号アドレス設定情報250に定義されている書込み範囲以外の信号アドレスに対してラダープログラム260内で書込みがされていないか)を判定する。信号アドレスチェック部210は、ラダープログラム260で書込み対象とされている信号アドレスが信号アドレス設定情報250に定義されている書込み範囲の情報と矛盾していると判定した場合、プログラム編集部200に対してその旨を通知し、矛盾した信号アドレスへの書込み部分をオペレータにわかるように表示するよう指令する。
【0042】
実行形式オブジェクト作成部220は、プログラム編集部200により作成・編集されたラダープログラム260に対してコンパイル処理を実行し、実行形式のラダープログラム180を作成する。実行形式オブジェクト作成部220は、実行形式のラダープログラム180を作成するに際して、信号アドレス設定情報250に基づいて使用アドレス設定テーブル作成部230が作成した使用アドレス設定テーブルと、信号アドレス設定情報250に基づいてアドレス共有情報作成部240が作成したアドレス共有情報とを、実行形式のラダープログラム180に対して埋め込む処理を行う。実行形式オブジェクト作成部220は、使用アドレス設定テーブル及びアドレス共有情報とを、ラダープログラム180の実行に直接的に影響を与えないヘッダーやコメントなどの形式で埋め込むようにしても良い。また、実行形式オブジェクト作成部220は、コンパイル処理を実行する前に、ラダープログラム260の信号アドレスのチェックを行うように信号アドレスチェック部210へと指令するようにしても良い。
【0043】
以下では、
図12,13を用いて、機械の基本機能と工具管理機能など機械を2個の分割ラダー(共有のアドレス空間)で制御する場合における、本発明の一実施形態によるプログラマブルコントローラ1、プログラミング装置2の具体的な動作実施例を説明する。
図12は、ラダープログラムを作成・編集してコンパイルするまでの動作を示している。オペレータは、あらかじめプログラミング装置2を操作して分割ラダー1、分割ラダー2の信号アドレス設定情報を作成してから、分割ラダー1、分割ラダー2の作成・編集を開始する。オペレータは、プログラム編集部200が提供する画面を見ながら分割ラダー1、分割ラダー2を作成・編集する。プログラム編集部200、オペレータからの編集操作を受けた際に、その編集操作による編集内容についてチェックするように信号アドレスチェック部210に指令しても良い。
図12の例で、例えば分割ラダー1の信号アドレスD0.0を信号アドレスD100.0に変更する編集操作を行った場合には、当該信号アドレスは信号アドレス設定情報に定義された書込みアドレスの範囲内であるため矛盾は無いと判断され、プログラム編集部200は当該編集操作を受け付ける。なお、例えば信号アドレスD5000.0への書込みを行うように編集操作した場合には、当該信号アドレスは信号アドレス設定情報に定義された書込みアドレスの範囲外であるため、矛盾が生じるのでプログラム編集部200は当該編集操作を受け付けない。
【0044】
オペレータは、分割ラダー1、分割ラダー2の作成・編集を完了すると、次に実行形式オブジェクト作成部220に対して指令して、分割ラダー1、分割ラダー2をコンパイルして実行形式オブジェクトへと変換する。実行形式オブジェクト作成部220は、分割ラダー1、分割ラダー2をコンパイルする際に、それぞれに係る書込み範囲の情報を信号アドレス設定情報から取り出して使用アドレス設定テーブルを作成し、各実行形式オブジェクトに対して埋め込む。
【0045】
図13は、実行形式のラダープログラムである分割ラダー1、分割ラダー2をプログラマブルコントローラ1上で実行する際の動作を示している。オペレータは、プログラミング装置2で作成した実行形式のラダープログラム(分割ラダー1、分割ラダー2)をプログラマブルコントローラ1へと転送して実行するように指令する。プログラマブルコントローラ1では、分割ラダー1、分割ラダー2の実行に先立って、各ラダープログラムから信号アドレス設定抽出部100が使用アドレス設定テーブルを抽出し、抽出された使用アドレス設定テーブルに基づいて信号アドレス重複判定部110が分割ラダー1と分割ラダー2の間で書き込み先の信号アドレスの範囲が重複していないかをチェックする。
図13の例では、それぞれの使用アドレス設定テーブルに定義されている書込み先の信号アドレスは重複していないため、その判定結果を受けてラダープログラム実行部120は、分割ラダー1、分割ラダー2の実行を開始する。なお、
図13において、分割ラダー2の使用アドレス設定テーブルに、例えば「D4000〜7999」が書き込み先として定義されていた場合には、信号アドレス重複判定部110は分割ラダー1と分割ラダー2の書き込み先信号アドレスに重複している部分があると判定し、その判定を受けてラダープログラム実行部120は分割ラダー1、分割ラダー2の実行を中止する。
【0046】
以下では、
図14〜16を用いて、機械本体と周辺機器部の2系統のプログラマブルコントローラ(独立したアドレス空間)でラダープログラムを実行して制御する場合における、本発明の一実施形態によるプログラマブルコントローラ1、プログラミング装置2の具体的な動作実施例を説明する。
図14は、ラダープログラムを作成・編集してコンパイルするまでの動作を示している。オペレータは、あらかじめプログラミング装置2を操作してPLC1用ラダー、PLC2用ラダーの信号アドレス設定情報を作成してから、PLC1用ラダー、PLC2用ラダーの作成・編集を開始する。オペレータは、プログラム編集部200が提供する画面を見ながらPLC1用ラダー、PLC2用ラダーを作成・編集する。プログラム編集部200は、オペレータからの編集操作を受けた際に、その編集操作による編集内容についてチェックするように信号アドレスチェック部210に対して指令しても良い。
図12の例で、例えばPLC2用ラダーの信号アドレスE5000.0を信号アドレスE6000.0に変更する編集操作を行った場合には、当該信号アドレスは信号アドレス設定情報に定義された書込みアドレスの範囲内であるため矛盾は無いと判断され、プログラム編集部200は当該編集操作を受け付ける。なお、
図12の例で、例えばPLC2用ラダーの信号アドレスG0.0を書き込みアドレスとなるように編集操作を行った場合、当該信号アドレスは信号アドレス設定情報に定義された書込みアドレスの範囲外であるため、矛盾が生じるのでプログラム編集部200は当該編集操作を受け付けない。
【0047】
オペレータは、PLC1用ラダー、PLC2用ラダーの作成・編集を完了すると、次に実行形式オブジェクト作成部220に対して指令して、PLC1用ラダー、PLC2用ラダーをコンパイルして実行形式オブジェクトへと変換する。実行形式オブジェクト作成部220は、PLC1用ラダー、PLC2用ラダーをコンパイルする際に、それぞれのラダープログラムに係る書込み範囲の情報を信号アドレス設定情報から取り出して使用アドレス設定テーブルを作成し、各実行形式オブジェクトに対して埋め込むと共に、それぞれのラダープログラムに係るアドレス共有情報を各実行形式オブジェクトに対して埋め込む。
【0048】
図15は、実行形式のラダープログラムであるPLC1用ラダー、PLC2用ラダーをプログラマブルコントローラ1上で実行する際の信号アドレスのマッピング動作を示している。プログラマブルコントローラ1上で複数のラダー(PLC1用ラダー、PLC2用ラダー)を実行する際、各々のラダープログアムのアドレス共有情報に基いて、各ラダープログラム用のマッピング情報(仮想アドレス→物理アドレス変換)が作成される。プログラマブルコントローラ1は、それぞれのラダープログラムが指定のアドレス領域を参照するとき、マッピング情報に従って変換されたアドレス領域を参照する。
図15の例では、PLC2用ラダーは、Eアドレス、Gアドレスを参照する際にPLC1用のEアドレス、Gアドレスを参照する。
【0049】
図16は、実行形式のラダープログラムであるPLC1用ラダー、PLC2用ラダーをプログラマブルコントローラ1上で実行する際の動作を示している。オペレータは、プログラミング装置2で作成した実行形式のラダープログラム(PLC1用ラダー、PLC2用ラダー)をプログラマブルコントローラ1へと転送して実行するように指令する。プログラマブルコントローラ1では、PLC1用ラダー、PLC2用ラダーの実行に先立って、各ラダープログラムから信号アドレス設定抽出部100が使用アドレス設定テーブル及びアドレス共有情報を抽出し、抽出された使用アドレス設定テーブルに基づいて信号アドレス重複判定部110がPLC1用ラダー、PLC2用ラダーの間で書き込み先の信号アドレスの範囲が重複していないかをチェックする。
図16の例では、PLC2用ラダーがアクセスする信号アドレスG1000〜G1499がPLC1用の信号アドレス領域G0〜G999へとマッピングされているため、両者の書込み先の信号アドレスが重複していると判定され、その判定結果を受けてラダープログラム実行部120は、PLC1用ラダー、PLC2用ラダーの実行を中止する。
【0050】
以上、ここまで本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では、プログラミング装置2にラダープログラムを編集する機能とラダープログラムをコンパイルする機能の両方を実装しているが、これら2つの機能は同一の装置上に実装する必要は無く、異なる2つの装置に対して実装するように構成しても良い。