IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 三菱電機株式会社の特許一覧

特開2024-164407制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム
<>
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図1
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図2
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図3
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図4
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図5
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図6
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図7
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図8
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図9
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図10
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図11
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図12
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図13
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図14
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図15
  • 特開-制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024164407
(43)【公開日】2024-11-27
(54)【発明の名称】制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラム
(51)【国際特許分類】
   G05B 19/05 20060101AFI20241120BHJP
【FI】
G05B19/05 A
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023079858
(22)【出願日】2023-05-15
(71)【出願人】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】110002941
【氏名又は名称】弁理士法人ぱるも特許事務所
(72)【発明者】
【氏名】加門 絵美
【テーマコード(参考)】
5H220
【Fターム(参考)】
5H220BB05
5H220BB15
5H220CC06
5H220DD04
5H220JJ12
5H220JJ24
5H220JJ42
(57)【要約】
【課題】PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮する。
【解決手段】第一のPLCを制御する第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1におけるデバイスのアドレスを、第二のPLCにおけるデバイスのアドレスに変換する変換処理部13により、第一制御プログラムから第二のプPLCを制御する第二制御プログラムPg2に変換する。変換処理部13は、複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブル22に基づいて、基準言語Lrで記載された基本機能に変換する基準言語変換部15と、設定可能なアドレス範囲が記載されたアドレス範囲テーブル21に基づいて、アドレスを変換するアドレス変換部16と、を備えている。
【選択図】図1
【特許請求の範囲】
【請求項1】
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに変換する制御プログラム変換装置であって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記第一制御プログラムを取得する制御プログラム取得部と、
前記第一制御プログラムで使用された前記基準言語以外のプログラミング言語を前記基準言語に変換し、
かつ前記第一制御プログラムにおける第一デバイスのアドレスを、前記第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部と、を備えており、
前記変換処理部は、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換部と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換部と、
を備えている制御プログラム変換装置。
【請求項2】
前記変換処理部は、
前記第二制御プログラムにおける一部の前記基本機能に対して適用する設計形式である第二設計形式と、前記第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ前記第二設計形式で対象とした前記基本機能の設計形式である第一設計形式と、が対応付けされた設計形式テーブルに基づいて、前記第一制御プログラムの前記基本機能の一部について前記第一設計形式から前記第二設計形式に変換する設計形式変換部を更に備えている、
請求項1記載の制御プログラム変換装置。
【請求項3】
前記変換処理部は、
前記基本機能テーブルに記載されていない前記基本機能が前記第一制御プログラムにある場合に、当該基本機能の内容をそのまま維持し、
前記アドレス範囲テーブルの範囲内のアドレスに変換できない前記第一デバイスのアドレスがある場合に、当該アドレスをそのまま維持する、
請求項1又は2に記載の制御プログラム変換装置。
【請求項4】
前記変換処理部は、
前記基準言語変換部にて、前記基準言語で記載されておらず、かつ前記基準言語に変換できなかった前記第一制御プログラムの前記基本機能がある場合又は
前記アドレス変換部にて、前記第二デバイスのアドレスに変換できなかった前記第一制御プログラムに記載された前記第一デバイスのアドレスがある場合に、
エラー情報を出力するエラー出力部を備えている、
請求項1又は2に記載の制御プログラム変換装置。
【請求項5】
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに変換する制御プログラム変換方法であって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記第一制御プログラムを取得する制御プログラム取得手順と、
前記第一制御プログラムで使用された前記基準言語以外のプログラミング言語を前記基準言語に変換し、
かつ前記第一制御プログラムにおける第一デバイスのアドレスを、前記第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順と、を含んでおり、
前記変換処理手順は、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換手順と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換手順と、
を含んでいる制御プログラム変換方法。
【請求項6】
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに、プロセッサにより変換する制御プログラムの変換プログラムであって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記プロセッサに、
前記第一制御プログラムを取得する制御プログラム取得手順と、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換手順と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換手順と、
を実行させるための制御プログラムの変換プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、制御プログラム変換装置、制御プログラム変換方法、及び制御プログラムの変換プログラムに関するものである。
【背景技術】
【0002】
プログラマブルロジックコントローラ(PLC:Programmable Logic Controller)は、リレー回路の代替え装置として開発された制御装置であり、現在では様々な機器、設備等の制御にて使用されている。PLCを製造しているメーカーは多数存在し、コンピュータ技術の発展と共に各社で機能向上開発を実施しており、新機種を順次製造している。旧機種においては一定期間経過ののち、生産中止となる場合が多い。ある機種について生産中止となっても、稼働中のPLCはすぐに更新されず、老朽化、故障等の理由により新たなPLCに更新されるまでは使用し続けることが多いため、現地稼働中のPLCの機種数は、非常に多く存在する。
【0003】
PLCを動作するためにはPLCのプログラム、すなわち制御プログラムを作成する必要があるが、作成する際のプログラミング言語は、同一会社が製造したPLCであっても、機種ごとに異なる場合がある。PLCの更新の際に、プログラミング言語が異なる等の理由で制御プログラムの互換性がない場合、更新後のプログラミング言語を用いて制御プログラムを作成し直す作業が発生していた。
【0004】
特許文献1には、ラダー言語で記載された制御プログラムを予め決められた標準形式の制御プログラムに変換し、他のメーカーのラダー言語で記載された制御プログラムに変換するプログラム変換装置が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平6-187015号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年、国際規格IEC61131-3にて制御プログラムの作成に用いるプログラミング言語に関する規格が規定されたことから、各社のプログラミングツールも国際規格で規定されたプログラミング言語に準拠したものへと変遷してきているため、使用している言語がラダー言語ではない場合もある。特許文献1に開示されたプログラム変換装置は、変換前後の制御プログラムのプログラミング言語はラダー言語にのみ対応しており、国際規格で規定された他のプログラミング言語に対応していない。
【0007】
本願明細書に開示される技術は、PLCの更新の際に、制御プログラムのプログラミング言語が異なっても制御プログラムの変更作業を短縮することを目的とする。
【課題を解決するための手段】
【0008】
本願明細書に開示される一例の制御プログラム変換装置は、第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに変換する。第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、第一制御プログラムに記載された第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、第二のプログラマブルロジックコントローラにおける第一デバイスに対応するデバイスを第二デバイスとする。制御プログラム変換装置は、第一制御プログラムを取得する制御プログラム取得部と、第一制御プログラムで使用された基準言語以外のプログラミング言語を基準言語に変換し、かつ第一制御プログラムにおける第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部と、を備えている。変換処理部は、複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、第一制御プログラムにおける基準言語で記載されていない基本機能を基準言語で記載された基本機能に変換する基準言語変換部と、第一のプログラマブルロジックコントローラ及び第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、第一制御プログラムにおける第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換するアドレス変換部と、を備えている。
【発明の効果】
【0009】
本願明細書に開示される一例の制御プログラム変換装置は、第一制御プログラムで使用された基準言語以外のプログラミング言語を予め設定された基準言語に変換し、かつ第一制御プログラムにおける第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部を備えているので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【図面の簡単な説明】
【0010】
図1】実施の形態1に係る制御プログラム変換装置の構成を示す図である。
図2図1のアドレス範囲テーブルの一例を示す図である。
図3図1の基本機能テーブルの一例を示す図である。
図4図1の機種選択部及び基準言語選択部を示す図である。
図5図1の基本機能検索情報及び基本機能変換情報を示す図である。
図6図1の第一アドレス情報及び第二アドレス情報を示す図である。
図7図1の変換処理部の動作の第一例を示すフローチャートである。
図8図1のログファイルの一例を示す図である。
図9図1の変換処理部の動作の第二例を示すフローチャートである。
図10図1の制御部の機能を実現するハードウェア構成例を示す図である。
図11】実施の形態2に係る制御プログラム変換装置の構成を示す図である。
図12図11の設計形式テーブルの一例を示す図である。
図13図11の形式検索情報及び形式変換情報を示す図である。
図14図11の変換処理部の動作の第一例を示すフローチャートである。
図15図11のログファイルの一例を示す図である。
図16図11の変換処理部の動作の第二例を示すフローチャートである。
【発明を実施するための形態】
【0011】
実施の形態1.
図1は、実施の形態1に係る制御プログラム変換装置の構成を示す図である。図2図1のアドレス範囲テーブルの一例を示す図であり、図3図1の基本機能テーブルの一例を示す図であり、図4図1の機種選択部及び基準言語選択部を示す図である。図5図1の基本機能検索情報及び基本機能変換情報を示す図であり、図6図1の第一アドレス情報及び第二アドレス情報を示す図である。図7図1の変換処理部の動作の第一例を示すフローチャートであり、図8図1のログファイルの一例を示す図である。図9図1の変換処理部の動作の第二例を示すフローチャートであり、図10図1の制御部の機能を実現するハードウェア構成例を示す図である。実施の形態1の制御プログラム変換装置1は、制御部110、記憶部90を備えており、第一のプログラマブルロジックコントローラを制御する第一制御プログラムPg1から第二のプログラマブルロジックコントローラを制御する第二制御プログラムPg2に変換する。第一のプログラマブルロジックコントローラから第二のプログラマブルロジックコントローラに更新する際に、旧制御プログラムである第一制御プログラムPg1から新制御プログラムである第二制御プログラムPg2に変換する例を説明する。
【0012】
制御部110は、制御プログラム媒体2に保存された第一制御プログラムPg1を取得する制御プログラム取得部11、第一制御プログラムPg1からプログラミング言語、デバイスのアドレスを変換して第二制御プログラムPg2を生成する変換処理部13、第二制御プログラムPg2を制御プログラム媒体2に出力する制御プログラム出力部19、機種選択部42、基準言語選択部52を備えている。記憶部90は、アドレス範囲テーブル21、基本機能テーブル22、ログファイル25を備えている。制御プログラム変換装置1は、キーボード、マウス等の入力機器32、制御プログラム変換装置1の入力情報、処理結果、エラー情報等を表示する表示装置31が接続されている。
【0013】
ここで、第二制御プログラムPg2で使用する予め設定されたプログラミング言語を基準言語Lrとし、第一制御プログラムPg1に記載された第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、第二のプログラマブルロジックコントローラにおける第一デバイスに対応するデバイスを第二デバイスとする。第一制御プログラムPg1は、複数の基本機能を組み合わせた複数のモジュールを備えており、この複数のモジュールを実行することで第一のプログラマブルロジックコントローラを制御する。また、ログラマブルロジックコントローラは、適宜、PLCと記載する。PLCは、前述したようにリレー回路の代替え装置として開発された制御装置なので、リレー回路で用いていた、入力リレー、出力リレー、タイマ、カウンタ、補助リレー等に対応したデバイスを複数備えている。あるPLCの機種を一例にとると、入力リレー、出力リレー、補助リレーに対応するデバイスは、それぞれ入力データを保持する入力デバイスX、出力データを保持する出力デバイスY、内部情報を保持する記憶デバイスMである。リレー回路のタイマ、カウンタに対応するデバイスは、それぞれタイマT、カウンタCである。
【0014】
図2にアドレス範囲テーブル21の一例を示した。アドレス範囲テーブル21は、PLCの機種毎に使用可能なアドレス範囲が設定されている。図2では3個の機種A、B、Cのアドレス範囲を記載した。デバイス番号が1の行は、入力デバイスXのアドレス範囲である。デバイス番号が2、3、4の行は、それぞれ出力デバイスY、タイマT、カウンタCのアドレス範囲である。なお、機種Cでは、入力デバイス、出力デバイス、タイマ、カウンタの符号をi、o、t、cとしている。機種Aの入力デバイスX、出力デバイスY、タイマT、カウンタCの使用可能なアドレス範囲すなわちXアドレス、Yアドレス、Tアドレス、Cアドレスの範囲は、それぞれ0~FFF(16進数)、0~FFF(16進数)、0~511(10進数)、0~511(10進数)である。同様に機種B、機種Cも使用可能なアドレス範囲が示されており、この機種、アドレスは追加することも可能である。
【0015】
機種B、機種Cの使用可能なアドレス範囲は、次の通りである。機種Bの入力デバイスX、出力デバイスY、タイマT、カウンタCの使用可能なアドレス範囲すなわちXアドレス、Yアドレス、Tアドレス、Cアドレスの範囲は、それぞれ0~1FFF(16進数)、0~1FFF(16進数)、0~2047(10進数)、0~2047(10進数)である。機種Cの入力デバイスi、出力デバイスo、タイマt、カウンタcの使用可能なアドレス範囲すなわちiアドレス、oアドレス、tアドレス、cアドレスの範囲は、それぞれ0~31F(16進数)、0~21F(16進数)、0~999(10進数)、0~2047(10進数)である。
【0016】
図3に基本機能テーブル22の一例を示した。基本機能テーブル22は、複数のプログラミング言語に対応して複数の基本機能が記載されている。各行にプログラミング言語毎の複数の基本機能が記載され、各列にそれぞれのプログラミング言語で同一の基本機能が記載されている。国際規格IEC61131-3では、制御プログラムの作成に用いるプログラミング言語として、次に示めす5種類が定義されている。5種類のプログラミング言語は、ラダー・ダイアグラム(LD言語、ラダー言語)、ファンクション・ブロック・ダイアグラム(FBD言語)、ストラクチャード・テキスト(ST言語)、インストラクション・リスト(IL言語)、シーケンシャル・ファンクション・チャート(SFC言語)である。
【0017】
図3では、プログラミング言語Aはラダー言語、プログラミング言語BはFBD言語、プログラミング言語はST言語が記載されており、基本機能番号が付された各列は全て同一の基本機能がそれぞれのプログラミング言語で記載されている。このプログラミング言語の種類、基本機能は追加することも可能であり、例えば同じプログラミング言語でも記載方法が異なる場合には、新たな基本機能として設定して記載することも可能である。基本機能は、回路図で言えば基本回路に相当する。
【0018】
図3では、基本機能番号が1の例に、プログラミング言語Aで記載された基本機能Q1A、プログラミング言語Bで記載された基本機能Q1B、プログラミング言語Cで記載された基本機能Q1C、プログラミング言語Dで記載された基本機能Q1Dが記載されている。同様に、基本機能番号が2の例に、プログラミング言語Aで記載された基本機能Q2A、プログラミング言語Bで記載された基本機能Q2B、プログラミング言語Cで記載された基本機能Q2C、プログラミング言語Dで記載された基本機能Q2Dが記載されている。基本機能Q1A、Q1B、Q1Cは具体的な例を図3に記載した。
【0019】
機種選択部42は、アドレス範囲テーブル21で設定した機種の中から、変換前の機種、変換後の機種を選択する。例えば、機種選択部42は表示装置31に表示された選択ボックス43a、43bに入力機器32を用いてプルダウンメニュー44の項目から選択する。図4に記載した機種選択部42を例にとると、変換前の機種は選択ボックス43aに記載された機種Cであり、変換後の機種は選択ボックス43bに記載された機種Aであることが示されている。なお、図4では選択ボックス43bにプルダウンメニュー44が記載されているが、選択ボックス43aでもプルダウンメニュー44が設定されている。機種選択部42は、選択ボックス43a、43bに設定された変換前の機種、変換後の機種の情報をそれぞれ第一機種情報sigp1、第二機種情報sigp2として変換処理部13に出力する。図4の例では、第一機種情報sigp1は機種Cを示しており、第二機種情報sigp2は機種Aを示している。
【0020】
基準言語選択部52は、基本機能テーブル22で設定したプログラミング言語の中から、変換後のプログラミング言語すなわち第二制御プログラムPg2で使用するプログラミング言語である基準言語Lrを選択する。例えば、基準言語選択部52は表示装置31に表示された選択ボックス53に入力機器32を用いてプルダウンメニュー54の項目から選択する。図4に記載した基準言語選択部52を例にとると、変換後のプログラミング言語である基準言語Lrは言語Aであることが示されている。基準言語選択部52は、選択ボックス53に設定された基準言語の情報を基準言語情報siggとして変換処理部13に出力する。図4の例では、基準言語情報siggは言語Aを示している。なお、図4ではプルダウンメニュー54の項目として、言語A、言語B、言語C、言語Dが記載されているが、それぞれプログラミング言語A、プログラミング言語B、プログラミング言語C、プログラミング言語Dの短縮表記である。適宜、プログラミング言語A、B、C、Dをそれぞれ言語A、B、C、Dと記載する。
【0021】
変換処理部13は、基準言語変換部15、アドレス変換部16、エラー出力部18を備えている。基準言語変換部15は、基本機能テーブル22に基づいて、第一制御プログラムPg1における基準言語Lrで記載されていない基本機能を基準言語Lrで記載された基本機能に変換する。アドレス変換部16は、アドレス範囲テーブル21に基づいて、第一制御プログラムPg1における第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する。エラー出力部18は、基準言語変換部15又は及びアドレス変換部16における変換においてエラーが発生した場合にエラー情報sigeを出力する。
【0022】
実施の形態1の制御プログラム変換装置1の動作を説明する。制御プログラム取得部11は、制御プログラム媒体2から第一制御プログラムPg1を取得する。この制御プログラム媒体2は、フロッピー(登録商標)ディスク、USB(USB Universal Serial Bus、登録商標)メモリ等の補助記憶装置、通信を介したサーバー等である。実施の形態1の制御プログラム変換装置1は、第一制御プログラムPg1、予め設定されているアドレス範囲テーブル21、基本機能テーブル22を用いて変換処理部13にて変換処理を行ない、第二制御プログラムPg2を生成する。変換処理部13は第一制御プログラムPg1のモジュール毎に変換処理を行う。図1では、制御プログラム出力部19が第二制御プログラムPg2を制御プログラム媒体2に出力する例を示したが、第一制御プログラムPg1が保存された制御プログラム媒体2と異なる他の制御プログラム媒体2に出力してもよい。
【0023】
基準言語変換部15が行う基準言語変換手順の例、アドレス変換部16が行うアドレス変換手順の例を、図5図6を用いて説明する。図5では、基本機能番号が1、2、3の列まで示した。本機能番号が1、2の列は前述した通りである。基本機能番号が3の例に、プログラミング言語Aで記載された基本機能Q3A、プログラミング言語Bで記載された基本機能Q3B、プログラミング言語Cで記載された基本機能Q3C、プログラミング言語Dで記載された基本機能Q3Dが記載されている。
【0024】
基準言語変換部15は、複数のプログラミング言語に対応して複数の基本機能Q1A~Q1D、Q2A~Q2D、Q3A~Q3D等が記載された基本機能テーブル22に基づいて、第一制御プログラムPg1における基準言語Lrで記載されていない基本機能Q1Cを基準言語Lrで記載された基本機能Q1Aに変換する。より具体的には、基準言語変換部15は、基本機能テーブル22において基本機能Q1Cを示す基本機能検索情報sigaを検索し、基本機能番号が1である基本機能決定情報sigcに関連付けされている基準言語Lrの基本機能Q1Aを、基本機能変換情報sigbとして取得する。基準言語変換部15は、第一制御プログラムPg1における基本機能Q1Cを基本機能テーブル22から取得した基本機能Q1Aに変換する(基準言語変換手順)。この基準言語変換手順において、基準言語Lrで記載されておらず、かつ基準言語Lrに変換できなかった第一制御プログラムPg1の基本機能がある場合に、基準言語変換部15はエラー出力部18に基準言語変換エラー情報sige1を出力する。エラー出力部18は、基準言語変換エラー情報sige1をエラー情報sigeとしてログファイル25に出力する。基準言語変換手順は、第一制御プログラムPg1の全ての基本機能について実行する。なお、次に背説明するアドレス変換手順が既に実行された変換作業中の制御プログラムも第一制御プログラムPg1と表記する。
【0025】
アドレス変換部16は、第一のプログラマブルロジックコントローラ及び第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブル21に基づいて、第一制御プログラムPg1における第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する。より具体的には、アドレス変換部16は、第一デバイス毎にアドレス範囲テーブル21において当該第一デバイス(例えばデバイス番号が1のデバイス)のアドレスを示す第一アドレス情報sigd1を機種Cの列で検索し、デバイス番号が1であるデバイス情報sigmに関連付けされた機種Aのアドレス範囲内の使用されていない1つアドレスを第二アドレス情報sigd2として取得する。アドレス変換部16は、第一制御プログラムPg1における第一デバイスのアドレスを、アドレス範囲テーブル21から取得した第二デバイスのアドレスに変換する(アドレス変換手順)。このアドレス変換手順において、第二デバイスのアドレスに変換できなかった第一制御プログラムPg1に記載された第一デバイスのアドレスがある場合に、アドレス変換部16はエラー出力部18にアドレス変換エラー情報sige2を出力する。エラー出力部18は、アドレス変換エラー情報sige2をエラー情報sigeとしてログファイル25に出力する。アドレス変換手順は、第一制御プログラムPg1における第一デバイスの全てのアドレスについて実行する。なお、既に基準言語変換手順が実行された変換作業中の制御プログラムも第一制御プログラムPg1と表記する。
【0026】
図8にログファイル25の例を示した。ログファイル25には、例えばエラー番号61、モジュール名62、エラー内容63が記載されている。図8では、エラー番号61がER1の行にアドレス変換エラー情報sige2の例を示し、エラー番号61がER2の行に基準言語変換エラー情報sige1の例を示した。エラー番号61がER1の行では、モジュール3においてアドレス変換のエラーが検出されたことを示しており、エラー番号61がER2の行では、モジュール10において基準言語変換のエラーが検出されたことを示している。
【0027】
次に、図7のフローチャートを用いて実施の形態1の制御プログラム変換装置1の動作をステップ毎に説明する。ステップS1にて、制御プログラム取得部11は、制御プログラム媒体2に保存された第一制御プログラムPg1を取得する(制御プログラム取得手順)。ステップS2~ステップS11は、変換処理部13が処理を行う変換処理手順である。ステップS2にて、変換処理部13は、第一制御プログラムPg1を変換するモジュール数すなわち変換対象数Kを設定する(変換対象数設定手順)。ステップS3にて、処理数Nを0にセットする(処理数初期設定手順)。
【0028】
第一制御プログラムPg1は、例えばテキスト形式、CSV(Comma Separated Value)形式等で記載されている。制御プログラム取得手順において、第一制御プログラムPg1を1つの形式、例えばCSV形式に変換してもよい。なお、国際規格IEC61131-3では、ラダー言語、FBD言語のテキストによる表記例が記載されている。
【0029】
変換対象数Kは、例えば変換処理部13が第一制御プログラムPg1をモジュール単位で分割した数である。例えば、三菱電機のプログラミングツールでは、Pデバイス、ステートメント(コメント)が使用されている。Pデバイスは、P4200のようにPで始まる番号であり、処理機能の塊を区別する表記である。ステートメントは、1つのPデバイスで設定された処理内容中に挿入される場合がある。Pデバイス、ステートメントが使われていない場合には、「end」があるまでの複数行を1つのモジュールとする。モジュールの分割の際に、第一制御プログラムPg1に記載されたPデバイス、ステートメント(コメント)、「end」等を検索して分割する。
【0030】
また、事前に、第一制御プログラムPg1に各モジュールすなわち各変換対象を示すコメントを挿入しておき、そのコメントに基づいて変換対象数Kを設定してもよい。例えば、モジュール1、モジュール2等のモジュールに数字を付加したコメントを挿入しておく。変換対象を示すコメントを挿入する手順を、変換対象数設定手順において実行してもよい。
【0031】
モジュール毎すなわち変換対象毎に基準言語変換及びアドレス変換を行うのは、変換可能なモジュールにおいては変換処理を実施するためである。プログラム全体を一括で変換処理を実施する場合、エラーが発生した場合に変換処理全体が停止してしまう。これに対して、実施の形態1の制御プログラム変換装置1が実行する制御プログラム変換方法は、一部のモジュールでも変換処理を実施することができる。
【0032】
ステップS4にて、基準言語変換部15は、モジュール毎すなわち変換対象毎にプログラミング言語が基準言語Lrか否かを判定する(基準言語判定手順)。プログラミング言語が基準言語Lrでない場合はステップS5に進み、プログラミング言語が基準言語Lrである場合はステップS8に進む。ステップS5にて、基準言語変換部15は、第一制御プログラムPg1における基本機能Q1Cを基本機能テーブル22から取得した基本機能Q1Aに変換する(基準言語変換手順)。ステップS6にて、基準言語変換手順でエラーがあるかを判定する(第一エラー判定手順)。エラーがある場合はステップS7に進み、エラーがない場合はステップS8に進む。
【0033】
ステップS8にて、アドレス変換部16は、第一制御プログラムPg1における第一デバイスのアドレスを、アドレス範囲テーブル21から取得した第二デバイスのアドレスに変換する(アドレス変換手順)。ステップS9にて、アドレス変換手順でエラーがあるかを判定する(第二エラー判定手順)。エラーがある場合はステップS7に進み、エラーがない場合はステップS10に進む。ステップS7にて、エラー出力部18は、基準言語変換手順でのエラーを基準言語変換エラー情報sige1として出力し、アドレス変換手順でのエラーをアドレス変換エラー情報sige2として出力する(エラー出力手順)。ステップS7の実行後にステップS10に進む。エラー出力部18は、基準言語変換エラー情報sige1、アドレス変換エラー情報sige2において、現在の処理数Nの「N」をモジュールNとして示す。図8に示したログファイル25におけるモジュール3、モジュール10はそれぞれ、4番目に処理したモジュール、11番目に処理したモジュールである。
【0034】
ステップS10にて、処理数Nを更新する(処理数更新手順)。更新前の処理数Nに1を加えて処理数Nを更新する。その後、ステップS11にて、処理数Nが変換対象数K未満かを判定する(処理数判定手順)。処理数Nが変換対象数K未満の場合はステップS4に戻り、ステップS4~ステップS11を繰り返す。ステップS11にて、処理数Nが変換対象数Kに達した場合は終了する。
【0035】
実施の形態1の制御プログラム変換装置1は、制御プログラム媒体2から取得した旧制御プログラムである第一制御プログラムPg1を、基本機能テーブル22、アドレス範囲テーブル21に基づいて変換処理部13により基準言語変換手順、アドレス変換手順を実行することで、新制御プログラムである第二制御プログラムPg2に変換することができる。これにより、実施の形態1の制御プログラム変換装置1は、第一制御プログラムPg1を新PLCである第二のPLCを制御する第二制御プログラムPg2に自動的に変換することができるため、最初からプログラムを設計及び製作し直す場合と比較してプログラム変換の効率化を図ることが可能となる。また、実施の形態1の制御プログラム変換装置1は、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部13を備えているので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0036】
実施の形態1の制御プログラム変換装置1により実行される制御プログラム変換方法は、制御プログラム取得手順にて制御プログラム媒体2から取得した旧制御プログラムである第一制御プログラムPg1を、基本機能テーブル22、アドレス範囲テーブル21に基づいて変換処理部13が実行する変換処理手順に含まれる基準言語変換手順、アドレス変換手順を実行することで、新制御プログラムである第二制御プログラムPg2に変換することができる。これにより、実施の形態1の制御プログラム変換方法は、第一制御プログラムPg1を新PLCである第二のPLCを制御する第二制御プログラムPg2に自動的に変換することができるため、最初からプログラムを設計及び製作し直す場合と比較してプログラム変換の効率化を図ることが可能となる。また、実施の形態1の制御プログラム変換方法は、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順を実行するので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0037】
実施の形態1の制御プログラム変換装置1は、図9に示したフローチャートを実行してもよい。図9のフローチャートは、ステップS7を実行した後に終了する点で図7のフローチャートと異なる。図9のフローチャートの場合にも、エラーがでる前までのモジュールについては変換処理ができるので、図7のフローチャートと同様に一部のモジュールでも変換処理を実施することができる。図7のフローチャートを実行する場合すなわち第一の変換処理方法を実行する場合、変換処理部13は次のように処理している。変換処理部13は、基本機能テーブル22に記載されていない基本機能が第一制御プログラムPg1にある場合に、当該基本機能の内容をそのまま維持し、アドレス範囲テーブルの範囲内のアドレスに変換できない第一デバイスのアドレスがある場合に、当該アドレスをそのまま維持して、第二制御プログラムPg2を生成する。図7のフローチャートを実行する場合すなわち第一の変換処理方法を実行する場合は、図9のフローチャートを実行する場合すなわち第二の変換処理方法を実行する場合に比べて変換処理ができるモジュール数が多くなり、プログラム変換の効率化を図ることが可能となる。
【0038】
基準言語判定手順は、例えばプログラミング言語を区別できる記載に基づいて判定する。なお、事前に、第一制御プログラムPg1にプログラミング言語を区別するコメントを挿入しておき、そのコメントに基づいて基準言語判定手順を実行してもよい。プログラミング言語を区別するコメントは、例えば、ラダー言語、FBD言語、ST言語、IL言語、SFC言語等である。第一制御プログラムPg1において複数のプログラミング言語が使用されている場合は、プログラミング言語毎にモジュールを設定することで、基準言語Lrで記載された第二制御プログラムPg2を生成することができる。複数のプログラミング言語が使用されている場合は、事前に、第一制御プログラムPg1に各モジュールすなわち各変換対象を示すコメントを挿入しておいてもよい。
【0039】
なお、制御部110の機能ブロックは、図10に示すプロセッサ98、メモリ99により機能が実現されてもよい。この場合、制御部110は、プロセッサ98がメモリ99に記憶されたプログラムを実行することにより、実現される。また、複数のプロセッサ98および複数のメモリ99が連携して各機能を実行してもよい。制御部110は、プロセッサ98がメモリ99に記憶されたプログラムすなわち制御プログラムの変換プログラムを実行することにより実現される。実施の形態1の制御プログラムの変換プログラムは、プロセッサ98に、ステップS1~ステップS11の各手順を実行させることで、実施の形態1の制御プログラム変換方法の効果が得られる。
【0040】
なお、ラダー言語が主体となる以前は、各社様々なプログラミング言語をPLCの制御プログラムに使用していた。中には一般的でないプログラミング言語も存在しており、これを使用したPLCが更新となる場合、当時の技術者の退職等によりプログラムを読解できる技術者が減ってきていることもあり、通常よりもプログラム製作に時間を要してしまう。しかし、実施の形態1の制御プログラム変換装置1、実施の形態1の制御プログラム変換方法、実施の形態1の制御プログラムの変換プログラムは、解読できる技術者が基本機能テーブル22にその言語の基本機能を追加することで、他の技術者でも変換処理作業を行うことができる。また、PLCの制御プログラムが複雑な場合には、一部のモジュールが変換できなくても、他のモジュールが自動で変換できれば、手作業で全てのモジュールを作成し直すよりもPLCの制御プログラムの変更作業を短縮できる。
【0041】
以上のように、実施の形態1の制御プログラム変換装置1は、第一のプログラマブルロジックコントローラを制御する第一制御プログラムPg1から第二のプログラマブルロジックコントローラを制御する第二制御プログラムPg2に変換する。第二制御プログラムPg2で使用する予め設定されたプログラミング言語を基準言語Lrとし、第一制御プログラムPg1に記載された第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、第二のプログラマブルロジックコントローラにおける第一デバイスに対応するデバイスを第二デバイスとする。実施の形態1の制御プログラム変換装置1は、第一制御プログラムPg1を取得する制御プログラム取得部11と、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部13と、を備えている。変換処理部13は、複数のプログラミング言語に対応して複数の基本機能Q1A~Q1D、Q2A~Q2Dが記載された基本機能テーブル22に基づいて、第一制御プログラムPg1における基準言語Lrで記載されていない基本機能Q1Cを基準言語Lrで記載された基本機能Q1Aに変換する基準言語変換部15と、第一のプログラマブルロジックコントローラ及び第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブル21に基づいて、第一制御プログラムPg1における第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換するアドレス変換部16と、を備えている。実施の形態1の制御プログラム変換装置1は、この構成により、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部13を備えているので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0042】
また、実施の形態1の制御プログラム変換方法は、第一のプログラマブルロジックコントローラを制御する第一制御プログラムPg1から第二のプログラマブルロジックコントローラを制御する第二制御プログラムPg2に変換する。第二制御プログラムPg2で使用する予め設定されたプログラミング言語を基準言語Lrとし、第一制御プログラムPg1に記載された第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、第二のプログラマブルロジックコントローラにおける第一デバイスに対応するデバイスを第二デバイスとする。実施の形態1の制御プログラム変換方法は、第一制御プログラムPg1を取得する制御プログラム取得手順と、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順と、を含んでいる。変換処理手順は、複数のプログラミング言語に対応して複数の基本機能Q1A~Q1D、Q2A~Q2Dが記載された基本機能テーブル22に基づいて、第一制御プログラムPg1における基準言語Lrで記載されていない基本機能Q1Cを基準言語Lrで記載された基本機能Q1Aに変換する基準言語変換手順と、第一のプログラマブルロジックコントローラ及び第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブル21に基づいて、第一制御プログラムPg1における第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換するアドレス変換手順と、を含んでいる。実施の形態1の制御プログラム変換方法は、この構成により、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順を含んでいるので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0043】
また、実施の形態1の制御プログラムの変換プログラムは、第一のプログラマブルロジックコントローラを制御する第一制御プログラムPg1から第二のプログラマブルロジックコントローラを制御する第二制御プログラムPg2に、プロセッサ98により変換する。第二制御プログラムPg2で使用する予め設定されたプログラミング言語を基準言語Lrとし、第一制御プログラムPg1に記載された第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、第二のプログラマブルロジックコントローラにおける第一デバイスに対応するデバイスを第二デバイスとする。実施の形態1の制御プログラムの変換プログラムは、プロセッサ98に、制御プログラム取得手順と、基準言語変換手順と、アドレス変換手順と、を実行させる。制御プログラム取得手順は、第一制御プログラムPg1を取得する。基準言語変換手順は、複数のプログラミング言語に対応して複数の基本機能Q1A~Q1D、Q2A~Q2Dが記載された基本機能テーブル22に基づいて、第一制御プログラムPg1における基準言語Lrで記載されていない基本機能Q1Cを基準言語Lrで記載された基本機能Q1Aに変換する。アドレス変換手順は、第一のプログラマブルロジックコントローラ及び第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブル21に基づいて、第一制御プログラムPg1における第一デバイスのアドレスを第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する。実施の形態1の制御プログラムの変換プログラムは、この構成により、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換する基準言語変換手順、及び第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換するアドレス変換手順をプロセッサ98に実行させるので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0044】
実施の形態2.
図11は、実施の形態2に係る制御プログラム変換装置の構成を示す図である。図12図11の設計形式テーブルの一例を示す図であり、図13図11の形式検索情報及び形式変換情報を示す図である。図14図11の変換処理部の動作の第一例を示すフローチャートであり、図15図11のログファイルの一例を示す図である。図16は、図11の変換処理部の動作の第二例を示すフローチャートである。実施の形態2の制御プログラム変換装置1は、変換処理部13が設計形式変換部17を備えており、記憶部90が設計形式テーブル23を備えている点で実施の形態1の制御プログラム変換装置1と異なる。実施の形態1の制御プログラム変換装置1と異なる部分を主に説明する。
【0045】
PLCの制御プログラムは、同じプログラミング言語で記載しても、同じ機能が様々な設計形式で作成することがきる。プログラムを設計する技術者が様々な設計形式でプログラムが作成されると、他の技術者がプログラムを解読するのに時間がかかるので、設計形式をできるだけ統一することが望ましい。このため、特定の基本機能について設計形式が定められている。設計形式は設計基準といってもよい。設計形式を定めているとき、よりよい方法でプログラムを作成するためにその設計形式が改定される場合がある。この場合、実施の形態1の制御プログラム変換装置1では、改定された設計形式に対応していないので、現在の設計形式に則ったプログラムへと変更する作業が発生する。実施の形態2の制御プログラム変換装置1は、改定された設計形式に対応できる制御プログラム変換装置である。
【0046】
図12に設計形式テーブル23の一例を示した。設計形式番号毎に変更前の機能と変更後の機能が記載されている。図12には、具体的にラダー言語による3つの設計形式を記載した。変更後の機能は最新の設計形式について記載されている。設計形式テーブル23に設計形式を追加することも可能である。ここではラダー言語で記載しているが、基準言語Lrで記載することが望ましい。基準言語Lrはラダー言語以外の他の言語で記載しても構わない。
【0047】
図12では、設計形式番号が1の行に、変更前に基本機能R1a、変更後に基本機能R1bが記載されている。設計形式番号が2の行に、変更前に基本機能R2a、変更後に基本機能R2bが記載されており、設計形式番号が3の行に、変更前に基本機能R3a、変更後に基本機能R3bが記載されている。基本機能R1bと基本機能R2bは同じ内容である。これは、基本機能R1aが基本機能R2aに改定され、更に基本機能R1b又は基本機能R2bに改定されたためである。このように、設計形式の改定は複数回実施される場合もあるので、1つの設計形式番号における変更前の1つの枠は複数の基本機能を記載可能としもよい。この場合は、設計形式番号が1の行の変更前に基本機能R1bと共に基本機能R2aが記載され、変更後に基本機能R1bが記載される。設計形式番号が1の行に移動した基本機能R2aは符号を変更して、設計形式番号の3を2に変更してもよいが、設計形式番号の2を欠番としてもよい。
【0048】
実施の形態2の変換処理部13は、基準言語変換部15、アドレス変換部16、設計形式変換部17、エラー出力部18を備えている。基準言語変換部15、アドレス変換部16は実施の形態1で説明した通りである。設計形式変換部17は、第二制御プログラムPg2における一部の基本機能に対して適用する設計形式である第二設計形式(変更後の設計形式)と、第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ第二設計形式で対象とした基本機能の設計形式である第一設計形式(変更前の設計形式)と、が対応付けされた設計形式テーブル23に基づいて、第一制御プログラムPg1の基本機能の一部について第一設計形式から第二設計形式に変換する。エラー出力部18は、基準言語変換部15、アドレス変換部16、設計形式変換部17における変換においてエラーが発生した場合にエラー情報sigeを出力する。
【0049】
設計形式変換部17が行う設計形式変換手順の例を、図13を用いて説明する。図13では、設計形式番号が1、2、3、4の行まで示した。設計形式番号が1、2、3の行は前述した通りである。設計形式番号が4の行に、変更前に基本機能R4a、変更後に基本機能R4bが記載されている。設計形式変換部17は、設計形式テーブル23に基づいて、第一制御プログラムPg1の第一設計形式で記載された基本機能R1a~R4aを第二設計形式で記載された基本機能R1b~R4bに変換する。より具体的には、設計形式変換部17は、設計形式テーブル23から変更前の基本機能を形式情報sigrとして順次取得し、形式情報sigrが第一制御プログラムPg1にあるかを判定する。設計形式変換部17は、形式情報sigrが第一制御プログラムPg1にあると判定した場合、形式情報sigrの基本機能を形式検索情報sigs1として設計形式テーブル23を検索し、当該基本機能の設計形式番号を形式決定情報sigs3として決定し、形式決定情報sigs3に関連付けされている基本機能を形式変換情報sigs2として取得する。第一制御プログラムPg1にあると判定された基本機能が基本機能R1aである例を説明する。設計形式変換部17は、設計形式テーブル23において基本機能R1aを示す形式検索情報sigs1を検索し、設計形式番号が1である形式決定情報sigs3に関連付けされている基本機能R1bを、形式変換情報sigs2として取得する。設計形式変換部17は、第一制御プログラムPg1における基本機能R1aを設計形式テーブル23から取得した基本機能R1bに変換する(設計形式変換手順)。この設計形式変換手順において、エラーがある場合に、設計形式変換部17はエラー出力部18に設計形式変換エラー情報sige3を出力する。エラー出力部18は、設計形式変換エラー情報sige3をエラー情報sigeとしてログファイル25に出力する。この設計形式変換手順は、モジュール毎すなわち変換対象毎に実行される。
【0050】
図15にログファイル25の例を示した。ログファイル25には、例えばエラー番号61、モジュール名62、エラー内容63が記載されている。図15では、エラー番号61がER1の行にアドレス変換エラー情報sige2の例を示し、エラー番号61がER2の行に基準言語変換エラー情報sige1の例を示し、エラー番号61がER3の行に設計形式変換エラー情報sige3の例を示した。エラー番号61がER1の行では、モジュール3においてアドレス変換のエラーが検出されたことを示しており、エラー番号61がER2の行では、モジュール10において基準言語変換のエラーが検出されたことを示している。エラー番号61がER3の行では、モジュール20において設計形式変換のエラーが検出されたことを示している。
【0051】
次に、図16のフローチャートを用いて実施の形態2の制御プログラム変換装置1の動作をステップ毎に説明する。ステップS1~ステップS6、ステップS8~ステップS11は実施の形態1で説明した通りである。ステップS9にて、エラーがない場合はステップS21に進む。ステップS21にて、設計形式変換部17は、第一制御プログラムPg1における第一設計形式で記載された基本機能R1a~R4aを、設計形式テーブル23から取得した第二設計形式で記載された基本機能R1b~R4bに変換する(設計形式変換手順)。その後、ステップS22にて、設計形式変換手順でエラーがあるかを判定する(第三エラー判定手順)。エラーがある場合はステップS7に進み、エラーがない場合はステップS10に進む。
【0052】
ステップS7にて、エラー出力部18は、基準言語変換手順でのエラーを基準言語変換エラー情報sige1として出力し、アドレス変換手順でのエラーをアドレス変換エラー情報sige2として出力し、設計形式変換手順でのエラーを設計形式変換エラー情報sige3として出力する(エラー出力手順)。ステップS7の実行後にステップS10に進む。エラー出力部18は、基準言語変換エラー情報sige1、アドレス変換エラー情報sige2、設計形式変換エラー情報sige3において、現在の処理数Nの「N」をモジュールNとして示す。図15に示したモジュール3、モジュール10、モジュール20はそれぞれ、4番目に処理したモジュール、11番目に処理したモジュール、21番目に処理したモジュールである。
【0053】
実施の形態2の制御プログラム変換装置1は、変換処理部13に設計形式変換部17が追加され、記憶部90に設計形式テーブル23が追加された以外が同じ構成を備えているので、実施の形態1の制御プログラム変換装置1と同様の効果を奏する。実施の形態2の制御プログラム変換装置1は、変換処理部13に設計形式変換部17が追加され、記憶部90に設計形式テーブル23が追加されているので、改定された設計形式に対応していない旧制御プログラムである第一制御プログラムPg1を、現在の設計形式に則ったプログラムへと変更することができる。したがって、実施の形態2の制御プログラム変換装置1は、実施の形態1の制御プログラム変換装置1よりもプログラム変換の効率化を図ることができ、実施の形態1の制御プログラム変換装置1よりも制御プログラムの変更作業を短縮することができる。
【0054】
実施の形態2の制御プログラム変換装置1は、図16に示したフローチャートを実行してもよい。図16のフローチャートは、ステップS7を実行した後に終了する点で図14のフローチャートと異なる。図16のフローチャートの場合にも、エラーがでる前までのモジュールについては変換処理ができるので、図14のフローチャートと同様に一部のモジュールでも変換処理を実施することができる。図14のフローチャートを実行する場合すなわち第一の変換処理方法を実行する場合、変換処理部13は次のように処理している。変換処理部13は、基本機能テーブル22に記載されていない基本機能が第一制御プログラムPg1にある場合に、当該基本機能の内容をそのまま維持し、アドレス範囲テーブルの範囲内のアドレスに変換できない第一デバイスのアドレスがある場合に、当該アドレスをそのまま維持し、設計形式変換手順においてエラーがある場合に当該基本機能の内容をそのまま維持して、第二制御プログラムPg2を生成する。図14のフローチャートを実行する場合すなわち第一の変換処理方法を実行する場合は、図16のフローチャートを実行する場合すなわち第二の変換処理方法を実行する場合に比べて変換処理ができるモジュール数が多くなり、プログラム変換の効率化を図ることが可能となる。
【0055】
なお、実施の形態2の制御部110の機能ブロックは、図10に示すプロセッサ98、メモリ99により機能が実現されてもよい。この場合、制御部110は、プロセッサ98がメモリ99に記憶されたプログラムを実行することにより、実現される。また、複数のプロセッサ98および複数のメモリ99が連携して各機能を実行してもよい。制御部110は、プロセッサ98がメモリ99に記憶されたプログラムすなわち制御プログラムの変換プログラムを実行することにより実現される。実施の形態2の制御プログラムの変換プログラムは、プロセッサ98に、ステップS1~ステップS11、ステップS21、ステップS22の各手順を実行させることで、実施の形態2の制御プログラム変換方法の効果が得られる。
【0056】
以上のように、実施の形態2の制御プログラム変換装置1は、実施の形態1の制御プログラム変換装置1の構成に加えて、設計形式テーブル23、設計形式変換部17を備えている。設計形式変換部17は、第二制御プログラムPg2における一部の基本機能R1a~R4aに対して適用する設計形式である第二設計形式と、第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ第二設計形式で対象とした基本機能R1b~R4bの設計形式である第一設計形式と、が対応付けされた設計形式テーブル23に基づいて、第一制御プログラムPg1の基本機能の一部について第一設計形式から第二設計形式に変換する。実施の形態2の制御プログラム変換装置1は、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部13を備えているので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0057】
また、実施の形態2の制御プログラム変換方法は、実施の形態1の制御プログラム変換方法の手順に加えて設計形式変換手順を更に含んでいる。設計形式変換手順は、第二制御プログラムにおける一部の基本機能R1b~R4bに対して適用する設計形式である第二設計形式と、第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ第二設計形式で対象とした基本機能R1b~R4bの設計形式である第一設計形式と、が対応付けされた設計形式テーブル23に基づいて、第一制御プログラムPg1の基本機能の一部について第一設計形式から第二設計形式に変換する。実施の形態2の制御プログラム変換方法は、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換し、かつ第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順を含んでいるので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0058】
また、実施の形態2の制御プログラムの変換プログラムは、実施の形態1の制御プログラム変換方法の手順に加えて設計形式変換手順をプロセッサ98に実行させる。設計形式変換手順は、第二制御プログラムにおける一部の基本機能R1b~R4bに対して適用する設計形式である第二設計形式と、第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ第二設計形式で対象とした基本機能R1b~R4bの設計形式である第一設計形式と、が対応付けされた設計形式テーブル23に基づいて、第一制御プログラムPg1の基本機能の一部について第一設計形式から第二設計形式に変換する。実施の形態2の制御プログラムの変換プログラムは、第一制御プログラムPg1で使用された基準言語Lr以外のプログラミング言語を予め設定された基準言語Lrに変換する基準言語変換手順、及び第一制御プログラムPg1における第一デバイスのアドレスを、第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換するアドレス変換手順をプロセッサ98に実行させるので、PLCの更新の際に、プログラミング言語が異なっても制御プログラムの変更作業を短縮することができる。
【0059】
なお、本願は、様々な例示的な実施の形態及び実施例が記載されているが、1つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも1つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも1つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【0060】
以上、好ましい実施の形態等について詳説したが、上述した実施の形態等に制限されることはなく、特許請求の範囲に記載された範囲を逸脱することなく、前述した実施の形態等に種々の変形及び置換を加えることができる。
【0061】
以下、本開示の諸態様を付記としてまとめて記載する。
【0062】
(付記1)
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに変換する制御プログラム変換装置であって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記第一制御プログラムを取得する制御プログラム取得部と、
前記第一制御プログラムで使用された前記基準言語以外のプログラミング言語を前記基準言語に変換し、
かつ前記第一制御プログラムにおける第一デバイスのアドレスを、前記第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理部と、を備えており、
前記変換処理部は、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換部と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換部と、
を備えている制御プログラム変換装置。
(付記2)
前記変換処理部は、
前記第二制御プログラムにおける一部の前記基本機能に対して適用する設計形式である第二設計形式と、前記第一のプログラマブルロジックコントローラを含む他のプログラマブルロジックコントローラで使用されており、かつ前記第二設計形式で対象とした前記基本機能の設計形式である第一設計形式と、が対応付けされた設計形式テーブルに基づいて、前記第一制御プログラムの前記基本機能の一部について前記第一設計形式から前記第二設計形式に変換する設計形式変換部を更に備えている、
付記1記載の制御プログラム変換装置。
(付記3)
前記変換処理部は、
前記基本機能テーブルに記載されていない前記基本機能が前記第一制御プログラムにある場合に、当該基本機能の内容をそのまま維持し、
前記アドレス範囲テーブルの範囲内のアドレスに変換できない前記第一デバイスのアドレスがある場合に、当該アドレスをそのまま維持する、
付記1又は2に記載の制御プログラム変換装置。
(付記4)
前記変換処理部は、
前記基準言語変換部にて、前記基準言語で記載されておらず、かつ前記基準言語に変換できなかった前記第一制御プログラムの前記基本機能がある場合又は
前記アドレス変換部にて、前記第二デバイスのアドレスに変換できなかった前記第一制御プログラムに記載された前記第一デバイスのアドレスがある場合に、
エラー情報を出力するエラー出力部を備えている、
付記1から3のいずれか1項に記載の制御プログラム変換装置。
(付記5)
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに変換する制御プログラム変換方法であって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記第一制御プログラムを取得する制御プログラム取得手順と、
前記第一制御プログラムで使用された前記基準言語以外のプログラミング言語を前記基準言語に変換し、
かつ前記第一制御プログラムにおける第一デバイスのアドレスを、前記第二のプログラマブルロジックコントローラにおける第二デバイスのアドレスに変換する変換処理手順と、を含んでおり、
前記変換処理手順は、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換手順と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換手順と、
を含んでいる制御プログラム変換方法。
(付記6)
第一のプログラマブルロジックコントローラを制御する第一制御プログラムから第二のプログラマブルロジックコントローラを制御する第二制御プログラムに、プロセッサにより変換する制御プログラムの変換プログラムであって、
前記第二制御プログラムで使用する予め設定されたプログラミング言語を基準言語とし、
前記第一制御プログラムに記載された前記第一のプログラマブルロジックコントローラのデバイスを第一デバイスとし、
前記第二のプログラマブルロジックコントローラにおける前記第一デバイスに対応するデバイスを第二デバイスとし、
前記プロセッサに、
前記第一制御プログラムを取得する制御プログラム取得手順と、
複数のプログラミング言語に対応して複数の基本機能が記載された基本機能テーブルに基づいて、前記第一制御プログラムにおける前記基準言語で記載されていない前記基本機能を前記基準言語で記載された前記基本機能に変換する基準言語変換手順と、
前記第一のプログラマブルロジックコントローラ及び前記第二のプログラマブルロジックコントローラのデバイスに対応して設定可能なアドレス範囲が記載されたアドレス範囲テーブルに基づいて、前記第一制御プログラムにおける前記第一デバイスのアドレスを前記第二のプログラマブルロジックコントローラにおける前記第二デバイスのアドレスに変換するアドレス変換手順と、
を実行させるための制御プログラムの変換プログラム。
【符号の説明】
【0063】
1…制御プログラム変換装置、11…制御プログラム取得部、13…変換処理部、15…基準言語変換部、16…アドレス変換部、17…設計形式変換部、18…エラー出力部、21…アドレス範囲テーブル、22…基本機能テーブル、23…設計形式テーブル、98…プロセッサ、Lr…基準言語、Pg1…第一制御プログラム、Pg2…第二制御プログラム、Q1A、Q1B、Q1C、Q1D…基本機能、Q2A、Q2B、Q2C、Q2D…基本機能、Q3A、Q3B、Q3C、Q3D…基本機能、R1a、R2a、R3a、R4a…基本機能、R1b、R2b、R3b、R4b…基本機能、sige…エラー情報
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16