(57)【要約】【課題】異機種のプログラマブルロジックコントローラ間において容易にプログラムを移植できるプログラム作成装置を提供する。【解決手段】プログラム作成装置１００は、変換元ソースプログラムを入力するソースプログラム入力部１１０と、変換元ソースプログラムを変換先機種用のソースプログラムに変換するソースプログラム変換部１３０と、を有する。ソースプログラム変換部１３０は、機種毎に命令の使用可否に関する情報を保持する命令対応テーブル１３１と、機種毎に命令の代替コードを保持する命令変換ライブラリ１３２と、機種毎にアドレス範囲の使用可否に関する情報を保持するアドレス範囲テーブル１３３と、機種毎にアドレスの使用有無に関する情報を保持するアドレス使用テーブル１３４と、に基づいて、変換元ソースプログラムを変換先機種用のソースプログラムに変換する。【選択図】図１
2019016037.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックコントローラ用のソースプログラムを異機種間で変換するプログラム作成装置であって、
変換元ソースプログラムを入力するソースプログラム入力部と、
前記プログラマブルロジックコントローラの機種毎に命令の使用可否に関する情報を保持する命令対応テーブルと、前記プログラマブルロジックコントローラの機種毎に命令の代替コードを保持する命令変換ライブラリと、前記プログラマブルロジックコントローラの機種毎にアドレス範囲の使用可否に関する情報を保持するアドレス範囲テーブルと、前記プログラマブルロジックコントローラの機種毎にアドレスの使用有無に関する情報を保持するアドレス使用テーブルと、に基づいて、前記変換元ソースプログラムを変換先機種用のソースプログラムに変換するソースプログラム変換部と、
を有するプログラム作成装置。
【請求項２】
前記ソースプログラム変換部は、
前記命令対応テーブルを参照して、前記変換元ソースプログラムに前記変換先機種で使用不可能な命令が含まれているかを判断し、
前記変換元ソースプログラムに前記変換先機種で使用不可能な命令が含まれている場合、前記命令変換ライブラリを参照して、前記変換先機種で使用不可能な命令を前記代替コードに変換し、
前記アドレス範囲テーブルを参照して、前記変換元ソースプログラムに前記変換先機種で使用不可能なアドレスが含まれているかを判断し、
前記変換元ソースプログラムに前記変換先機種で使用不可能なアドレスが含まれている場合、前記アドレス使用テーブルを参照して、前記変換先機種で使用不可能なアドレスを使用可能かつ未使用のアドレスに変換することを特徴とする
請求項１記載のプログラム作成装置。
【請求項３】
前記変換元ソースプログラムから変換された前記変換先機種用のソースプログラムを、前記変換先機種用のオブジェクトコードに変換するコンパイラを有することを特徴とする
請求項１記載のプログラム作成装置。
【請求項４】
前記ソースプログラム変換部は、前記変換元ソースプログラムの一部のみを前記変換先機種用のソースプログラムに変換し、既存の前記変換先機種用のソースプログラムに結合することを特徴とする
請求項１記載のプログラム作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム作成装置に関し、特に異機種のプログラマブルロジックコントローラ間において容易にプログラムを移植できるプログラム作成装置に関する。
【背景技術】
【０００２】
工場内にはラダープログラムなどに基づく制御を行うプログラマブルロジックコントローラ（プログラマブルマシンコントローラ：ＰＭＣ等を含む。以下、ＰＬＣとする）が複数機種存在する。ＰＬＣは、機種毎に作成されたオブジェクトコードを読み込んで動作する。オブジェクトコードは、例えばラダー編集ツールで機種毎に作成及び編集されたラダープログラムをコンパイルすることで生成される。以下、ラダープログラムなど、オブジェクトコードの元となるプログラムを、単にプログラム又はソースプログラムと称する。
【０００３】
ソースプログラムを異なる機種間で移植することがある。ＰＬＣのメーカやモデルが異なると、プログラム作成言語の仕様（例えば命令の種類、使用できるメモリの範囲等）が異なることがあるためである。例えば、周辺機器を制御するためのソースプログラムや、特定の機能を実現するためのソースプログラムを、異機種でも同様に実行したい場合に移植が行われる。
【０００４】
異機種間でのソースプログラムの移植に関する先行技術として特許文献１がある。特許文献１には、移植元のラダープログラム内に、移植先のＰＬＣが対応していない命令が含まれる場合、移植先のラダープログラムにおいてはその命令を無効化する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−０５２６７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１記載のように一部の命令を無効化してしまうと、移植元と移植先とではソースプログラムの内容が異なってしまうため、異機種間で同じ動作を実現できない。また、ＰＬＣは機種毎に扱えるアドレスの種類や範囲も異なるため、ソースプログラムを移植する際は、命令だけでなくアドレスの修正も必要である。しかしながら、特許文献１はアドレスの修正手法については何ら言及していない。
【０００７】
本発明はこのような問題点を解決するためになされたものであって、異機種のプログラマブルロジックコントローラ間において容易にプログラムを移植できるプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施の形態にかかるプログラム作成装置は、プログラマブルロジックコントローラ用のソースプログラムを異機種間で変換するプログラム作成装置であって、変換元ソースプログラムを入力するソースプログラム入力部と、前記プログラマブルロジックコントローラの機種毎に命令の使用可否に関する情報を保持する命令対応テーブルと、前記プログラマブルロジックコントローラの機種毎に命令の代替コードを保持する命令変換ライブラリと、前記プログラマブルロジックコントローラの機種毎にアドレス範囲の使用可否に関する情報を保持するアドレス範囲テーブルと、前記プログラマブルロジックコントローラの機種毎にアドレスの使用有無に関する情報を保持するアドレス使用テーブルと、に基づいて、前記変換元ソースプログラムを変換先機種用のソースプログラムに変換するプログラム変換部と、を有することを特徴とする。
本発明の一実施の形態にかかるプログラム作成装置は、前記プログラム変換部は、前記命令対応テーブルを参照して、前記変換元ソースプログラムに前記変換先機種で使用不可能な命令が含まれているかを判断し、前記変換元ソースプログラムに前記変換先機種で使用不可能な命令が含まれている場合、前記命令変換ライブラリを参照して、前記変換先機種で使用不可能な命令を前記代替コードに変換し、前記アドレス範囲テーブルを参照して、前記変換元ソースプログラムに前記変換先機種で使用不可能なアドレスが含まれているかを判断し、前記変換元ソースプログラムに前記変換先機種で使用不可能なアドレスが含まれている場合、前記アドレス使用テーブルを参照して、前記変換先機種で使用不可能なアドレスを使用可能かつ未使用のアドレスに変換することを特徴とする。
本発明の一実施の形態にかかるプログラム作成装置は、前記変換元ソースプログラムから変換された前記変換先機種用のソースプログラムを、前記変換先機種用のオブジェクトコードに変換するコンパイラを有することを特徴とする。
本発明の一実施の形態にかかるプログラム作成装置は、前記プログラム変換部は、前記変換元ソースプログラムの一部のみを前記変換先機種用のソースプログラムに変換し、既存の前記変換先機種用のソースプログラムに結合することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、異機種のプログラマブルロジックコントローラ間において容易にプログラムを移植できるプログラム作成装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】プログラム作成装置１００の構成を示すブロック図である。
【図２】コンパイラ１２０の動作の概要を示す図である。
【図３】ソースプログラム変換部１３０の動作の概要を示す図である。
【図４】ソースプログラム変換部１３０の動作の概要を示す図である。
【図５】プログラム作成装置１００の動作を示すフローチャートである。
【図６】ソースプログラム変換部１３０の動作を示すフローチャートである。
【図７】ソースプログラム変換部１３０の動作を示すフローチャートである。
【図８】命令対応テーブル１３１の一例を示す図である。
【図９】命令変換ライブラリ１３２の一例を示すブロック図である。
【図１０】アドレス範囲テーブル１３３の一例を示すブロック図である。
【図１１】アドレス使用テーブル１３４の一例を示すブロック図である。
【図１２】プログラム作成装置１００の一実施例を説明する図である。
【図１３】プログラム作成装置１００の一実施例を説明する図である。
【図１４】プログラム作成装置１００の一実施例を説明する図である。
【図１５】代替コードの一例を示す図である。
【発明を実施するための形態】
【００１１】
本発明の実施の形態について、図面を用いて説明する。
図１は、プログラム作成装置１００の機能構成を示すブロック図である。プログラム作成装置１００は、典型的には中央処理装置（ＣＰＵ）、記憶装置、入出力装置等を有するコンピュータである。ＣＰＵが記憶装置に格納されたプログラムを読み出して実行することにより、所定の機能（例えば後述の各処理部）が論理的に実現される。プログラム作成装置１００は１台のコンピュータであっても良く、複数のコンピュータにより構成されていても良い。プログラム作成装置１００は汎用コンピュータであっても良く、数値制御装置等の専用コンピュータであっても良い。プログラム作成装置１００は、処理部としてソースプログラム入力部１１０、コンパイラ１２０、ソースプログラム変換部１３０を有する。
【００１２】
ソースプログラム入力部１１０は、特定機種のＰＬＣ用のソースプログラムを入力する処理を行う。例えばソースプログラム入力部１１０は、エディタや外部から入力されたソースプログラムを所定の記憶領域に保存する。
【００１３】
コンパイラ１２０は、ソースプログラムをオブジェクトコードに変換する処理を行う。図２に示すように、コンパイラ１２０は、各機種（例えばＰＬＣ１、ＰＬＣ２、ＰＬＣ３）用に作成されたソースプログラムをソースプログラム入力部１１０から読み込む。コンパイラ１２０は、ソースプログラムとオブジェクトコードとの変換ルールを機種毎に保持しており、ある機種（例えばＰＬＣ１）用のソースプログラムを同じ機種（ＰＬＣ１）用のオブジェクトコードに変換し出力する。出力された機種毎のオブジェクトコードは、工場内にある対応するＰＬＣ各機種において使用される。
【００１４】
ソースプログラム変換部１３０は、ある機種用のソースプログラムを、他の機種用のソースプログラムに変換する処理を行う。例えば図３に示すように、ソースプログラム変換部１３０は、特定の機種（例えばＰＬＣ１）用に作成されたソースプログラムをソースプログラム入力部１１０から読み込む。ソースプログラム変換部１３０は、異機種間のソースプログラムの変換ルールを保持しており、ある機種（ＰＬＣ１）用のソースプログラムを他の機種（例えばＰＬＣ２）用のソースプログラムに変換する。変換後のソースプログラム（ＰＬＣ２用）は、例えばソースプログラム入力部１１０へ出力される。
【００１５】
ソースプログラム変換部１３０は、ソースプログラム全体を変換してもよく、ソースプログラムの一部のみを変換しても良い。例えば図４に示すように、ＰＬＣ１に接続されている機器２を、新たにＰＬＣ２にも接続したい場合、ＰＬＣ１のソースプログラムのうち機器２の制御に関わる部分だけをＰＬＣ２用に変換することもできる。このときソースプログラム変換部１３０は、ソースプログラムのうち変換の対象とする部分のみをソースプログラム入力部１１０から読み込んでも良く、ソースプログラム入力部１１０から読み込んだソースプログラムのうち変換の対象とする部分を指定するためのインタフェースを設けても良い。
【００１６】
図１に示すように、ソースプログラム変換部１３０は、命令対応テーブル１３１、命令変換ライブラリ１３２、アドレス範囲テーブル１３３、アドレス使用テーブル１３４を有する。命令対応テーブル１３１は、ＰＬＣの機種毎に使用可能な命令を保持する。命令変換ライブラリ１３２は、命令と、その命令と同等の機能を有する代替コード（例えばラダー回路）とを保持する。アドレス範囲テーブル１３３は、ＰＬＣの機種毎に使用可能なアドレス範囲を保持する。アドレス使用テーブル１３４は、ＰＬＣの機種毎に使用中のアドレスを保持する。
【００１７】
ソースプログラム変換部１３０は、命令対応テーブル１３１を参照して、変換元ソースプログラムで使用されている命令に、変換先機種が対応するか（すなわち変換先機種で使用可能か）を確認する。図８に、命令対応テーブル１３１の一例を示す。この命令対応テーブル１３１は、複数の機種（ＰＬＣ１、ＰＬＣ２、ＰＬＣ３）における、命令（ＡＤＤ、ＳＵＢ、ＭＵＬ・・）への対応状況を保持している。○は当該機種において命令が使用可能であること、×は使用不能であることを示す。この命令対応テーブル１３１は、機種ＰＬＣ１は全ての命令に対応し、機種ＰＬＣ２は命令ＮＥＧを除く命令に対応し、機種ＰＬＣ３は命令ＭＵＬ、ＤＩＶ、ＮＥＧを除く命令に対応することを示している。
【００１８】
ソースプログラム変換部１３０は、変換元ソースプログラムで使用されている命令に変換先機種が対応しない場合、命令変換ライブラリ１３２を参照して、当該命令と同等の機能を有する代替コードが存在するかを確認する。存在する場合、当該命令を代替コードで置換することで、ソースプログラムを変換する。図９に、命令変換ライブラリ１３２の一例を示す。この命令変換ライブラリ１３２は、複数の機種（ＰＬＣ１、ＰＬＣ２、ＰＬＣ３）における、命令（ＭＵＬ、ＤＩＶ、ＮＥＧ）の代替コードを保持している。例えばソースプログラムがラダープログラムであれば、代替コードはラダー回路のモジュールである。この命令変換ライブラリ１３２は、機種ＰＬＣ２用の命令ＮＥＧの代替コード、機種ＰＬＣ３用の命令ＭＵＬ、ＮＥＧの代替コードを保持している。なお、この命令変換ライブラリ１３２は、機種ＰＬＣ３用の命令ＤＩＶの代替コードを保持していない。変換元ソースプログラムで命令ＤＩＶが使用され、機種ＰＬＣ３が命令ＤＩＶに対応しておらず、機種ＰＬＣ３用の命令ＤＩＶの代替コードも存在しない場合、ソースプログラム変換部１３０はソースプログラムを変換できない。
【００１９】
ソースプログラム変換部１３０は、アドレス範囲テーブル１３３を参照して、変換元ソースプログラムで使用されているアドレスが、変換先機種で使用可能であるかを確認する。図１０に、アドレス範囲テーブル１３３の一例を示す。このアドレス範囲テーブル１３３は、複数の機種（ＰＬＣ１、ＰＬＣ２、ＰＬＣ３）における、使用可能なアドレス範囲を保持している。このアドレス範囲テーブル１３３は、機種ＰＬＣ１においては、ＲアドレスとしてＲ０からＲ７９９９まで、ＤアドレスとしてＤ０からＤ９９９９まで、ＴアドレスとしてＴ０からＴ４９９まで、ＣアドレスとしてＣ０からＣ３９９までの範囲が使用可能であることを示している。同様に機種ＰＬＣ２及びＰＬＣ３が使用可能なアドレス範囲も示されている。
【００２０】
ソースプログラム変換部１３０は、変換元ソースプログラムで使用されているアドレスが変換先機種で使用不能である場合、アドレス使用テーブル１３４を参照して、変換先機種に未使用アドレスが存在するかを確認する。存在する場合、変換元ソースプログラムで使用されているアドレスを未使用アドレスで置換することで、ソースプログラムを変換する。図１１に、アドレス使用テーブル１３４の一例を示す。このアドレス使用テーブル１３４は、機種ＰＬＣ２におけるアドレスの使用状況を保持している。＊はその記憶領域が既に使用されていることを、空欄は未使用であることを示す。このアドレス使用テーブル１３４は、機種ＰＬＣ２ではＲ００００、Ｒ０００１が既に使用されていること、Ｒ０００２．０以降のアドレスは未使用であることを示している。
【００２１】
図５のフローチャートを用いて、プログラム作成装置１００の動作の一例を説明する。この例では、プログラム作成装置１００は、あるソースプログラムを読み込んでこれを機種Ｘ用のソースプログラムに変換し、変換後のソースプログラムを機種Ｘ用のオブジェクトコードに変換する。
Ｓ１０１：ソースプログラム変換部１３０は、ソースプログラム入力部１１０からソースプログラムを読み込む。このソースプログラムは、変換の元となるソースプログラムである。
Ｓ１０２：ソースプログラム変換部１３０は、読み込んだソースプログラムの命令を解析し、必要であれば変換先の機種Ｘで使用可能な命令に変換する（命令変換処理）。命令変換処理の内容は後述する。
Ｓ１０３：命令変換処理中にエラーが発生した場合はエラーを出力する（Ｓ１０９）。
Ｓ１０４：ソースプログラム変換部１３０は、読み込んだソースプログラムで使用されるアドレスを解析し、必要であれば変換先の機種Ｘで使用可能なアドレスに変換する（アドレス変換処理）。アドレス変換処理の内容は後述する。
Ｓ１０５：アドレス変換処理中にエラーが発生した場合はエラーを出力する（Ｓ１０９）。
Ｓ１０６：ソースプログラム変換部１３０は、命令変換処理及びアドレス変換処理が施されたソースプログラムを、機種Ｘ用のソースプログラムとして出力する。ソースプログラム変換部１３０は、機種Ｘ用のソースプログラムをソースプログラム入力部１１０に出力する。又は、コンパイラ１２０に直接引き渡しても良い。
なおソースプログラム変換部１３０は、変換元のソースプログラムに含まれるアドレスのシンボル（アドレスに付される別名）やコメント等も、機種Ｘ用のソースプログラムにコピーすることが好ましい。ソースプログラムの可読性が維持されるためである。
コンパイラ１２０は、機種Ｘ用のソースプログラムを取得し、予め保持している変換ルールに従って機種Ｘ用のオブジェクトコードに変換する。
Ｓ１０７：コンパイル時にエラーが発生した場合はエラーを出力する（Ｓ１０９）。
Ｓ１０８：コンパイラ１２０は、機種Ｘ用のオブジェクトコードを出力する。
【００２２】
図６のフローチャートを用いて、命令変換処理を具体的に説明する。
Ｓ２０１：ソースプログラム変換部１３０は、変換元のソースプログラムに含まれる全ての命令それぞれについて、Ｓ２０２以降の処理を実行する。
Ｓ２０２：ソースプログラム変換部１３０は、命令対応テーブル１３１を参照して、変換元ソースプログラムで使用されている命令に機種Ｘが対応するかを確認する。対応しない場合、Ｓ２０３に遷移する。
Ｓ２０３:ソースプログラム変換部１３０は、命令変換ライブラリ１３２を参照して、当該命令と同等の機能を有する機種Ｘ用の代替コードが存在するかを確認する。存在する場合はＳ２０４、存在しない場合はＳ２０５に遷移する。
Ｓ２０４:ソースプログラム変換部１３０は、変換元ソースプログラムに含まれる命令を代替コードで置換する。
Ｓ２０５：このソースプログラムを機種Ｘ用に変換することは不可能であるため、ソースプログラム変換部１３０はエラーを出力する。
【００２３】
図７のフローチャートを用いて、アドレス変換処理を具体的に説明する。
Ｓ３０１：ソースプログラム変換部１３０は、変換元のソースプログラムで使用されている全てのアドレスそれぞれについて、Ｓ３０２以降の処理を実行する。
Ｓ３０２：ソースプログラム変換部１３０は、アドレス範囲テーブル１３３を参照して、変換元ソースプログラムで使用されているアドレスが機種Ｘで使用可能であるかを確認する。使用不可能である場合、Ｓ３０３に遷移する。
Ｓ３０３:ソースプログラム変換部１３０は、アドレス使用テーブル１３４を参照して、機種Ｘに未使用アドレスが存在するかを確認する。存在する場合はＳ３０４、存在しない場合はＳ３０５に遷移する。
Ｓ３０４:ソースプログラム変換部１３０は、変換元ソースプログラムで使用されるアドレスを未使用アドレスで置換する。
Ｓ３０５：このソースプログラムを機種Ｘ用に変換することは不可能であるため、ソースプログラム変換部１３０はエラーを出力する。
【００２４】
本実施の形態によれば、ソースプログラム変換部１３０が、ソースプログラムに含まれる命令が移植先の機種で使用不可能である場合、その命令を移植先の機種で動作する代替コードで置換する。またソースプログラム変換部１３０は、ソースプログラムが使用するアドレスが移植先の機種で使用不可能である場合、その命令を移植先の機種で使用可能な未使用アドレスで置換する。そのため、異機種間で同じ動作を実現しつつ、ソースプログラムを容易に移植することができる。
【００２５】
続いて、実施例として、プログラム作成装置１００が、機種ＰＬＣ１用のラダープログラムを機種ＰＬＣ２用のラダープログラムに変換する際の動作を説明する。図１２は、変換元となる機種ＰＬＣ１用のラダープログラムである。これは例えば、機種ＰＬＣ１に接続された外部機器の制御プログラムである。ＡＤＤ、ＮＥＧは命令である。Ｘ００００．０、Ｒ５０００．０、Ｙ００００．０は使用されるアドレスである。本実施例のソースプログラム変換部１３０は、図８に記載の命令対応テーブル１３１、図９に記載の命令変換ライブラリ１３２、図１０に記載のアドレス範囲テーブル１３３、図１１に記載のアドレス使用テーブル１３４を有している。
【００２６】
ソースプログラム変換部１３０は、図８の命令対応テーブル１３１を参照して、変換元ラダープログラムで使用されている命令（ＡＤＤ、ＮＥＧ）に機種ＰＬＣ２が対応するかを確認する。この命令対応テーブル１３１によれば、機種ＰＬＣ２は命令ＮＥＧに対応しない。
【００２７】
ソースプログラム変換部１３０は、図９の命令変換ライブラリ１３２を参照して、命令ＮＥＧと同等の機能を有する機種ＰＬＣ２用の代替コードが存在するかを確認する。この命令変換ライブラリ１３２には、ＰＬＣ２用ＮＥＧ代替コード（ＰＬＣ２用ＮＥＧ代替ラダー回路）が登録されている。
【００２８】
参考として、図１５に代替コードの具体例を示す。命令ＮＥＧは符号反転処理を行うための命令である。命令ＮＥＧに対応する機種ＰＬＣ１では、図１５上図に示すラダー回路により命令ＮＥＧを実現できる。命令ＮＥＧに非対応の機種ＰＬＣ２では、図１５中図に示す代替ラダー回路により命令ＮＥＧと同等の機能を実現できる。この代替ラダー回路は、機種ＰＬＣ２が対応する命令ＭＵＬを用いて符号反転処理を行う。命令ＮＥＧに非対応の機種ＰＬＣ３では、図１５下図に示す代替ラダー回路により命令ＮＥＧと同等の機能を実現できる。機種ＰＬＣ３は命令ＭＵＬにも対応しないため、機種ＰＬＣ３が対応する命令ＳＵＢを用いて符号反転処理を行っている。このように、代替コードは各機種が対応する命令を用いて作成される。
【００２９】
ソースプログラム変換部１３０は、変換元の機種ＰＬＣ１用のラダープログラムの命令ＮＥＧを、ＰＬＣ２用ＮＥＧ代替コードで置換する。図１３は、命令変換処理後のラダープログラムを示している。
【００３０】
ソースプログラム変換部１３０は、図１０のアドレス範囲テーブル１３３を参照して、変換元ソースプログラムで使用されているアドレス（本実施例では説明の簡略化のためＲ５０００．０にのみ着目する）が機種ＰＬＣ２で使用可能であるかを確認する。このアドレス範囲テーブル１３３によれば、機種ＰＬＣ２が使用可能なアドレス範囲はＲ０からＲ１４９９であり、Ｒ５０００．０は使用不可能である。
【００３１】
ソースプログラム変換部１３０は、図１１のアドレス使用テーブル１３４を参照して、機種ＰＬＣ２に未使用アドレスが存在するかを確認する。このアドレス使用テーブル１３４によれば、Ｒ０００２．０以降のアドレスが未使用である。
【００３２】
ソースプログラム変換部１３０は、変換元ソースプログラムで使用されるアドレスＲ５０００．０を未使用アドレスＲ０００２．０で置換する。図１４は、アドレス変換処理後のラダープログラムを示している。ソースプログラム変換部１３０は、図１４に示すラダープログラムを、機種ＰＬＣ２用のラダープログラムとして出力する。コンパイラ１２０が機種ＰＬＣ２用のラダープログラムをコンパイルし、機種ＰＬＣ２用のオブジェクトコードを生成、出力する。このオブジェクトコードを機種ＰＬＣ２にロードすることで、機種ＰＬＣ２においても機種ＰＬＣ１と同じ外部機器を使用できる。
【００３３】
以上、本発明の実施の形態について説明したが、本発明は上述した実施の形態の例のみに限定されることなく、適宜の変更を加えることにより様々な態様で実施することができる。
【００３４】
例えば、上述の実施の形態では、ソースプログラムとしてラダープログラムを例示したが、本発明はこれに限定されず、例えばＦＢＤ（Ｆｕｎｃｔｉｏｎ  Ｂｌｏｃｋ  Ｄｉａｇｒａｍ）、ＳＦＣ（Ｓｅｑｕｅｎｃｉａｌ  Ｆｕｎｃｔｉｏｎ  Ｃｈａｒｔ）、ＩＬ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｌｉｓｔ）、ＳＴ（Ｓｔｒｕｃｔｕｒｅｄ  Ｔｅｘｔ）等の任意の言語で作成されたプログラムをソースプログラムとして使用できる。同様に、任意の言語で作成されたモジュールを代替コードとして使用できる。
【００３５】
また、上述の実施の形態では、命令変換ライブラリ１３２が代替コードを予め保持している例を示した。この命令変換ライブラリ１３２の代替コードは、ユーザによって適宜編集可能であっても良い。例えば、プログラム作成装置１００は、ユーザが作成した代替コードを命令変換ライブラリ１３２に登録したり、登録済みの代替コードを編集したりするためのインタフェースを備えても良い。
【００３６】
また、上述の実施の形態では、命令対応テーブル１３１はＰＬＣの機種毎に使用可能な命令を保持したが、命令の使用可否に関する情報を保持していれば良く、例えば使用不可能な命令を保持していても良い。また、アドレス範囲テーブル１３３はＰＬＣの機種毎に使用可能なアドレス範囲を保持したが、アドレスの使用可否に関する情報を保持していれば良く、例えば使用不可能なアドレスを保持していても良い。また、アドレス使用テーブル１３４はＰＬＣの機種毎に使用中のアドレスをそれぞれ保持したが、アドレスの使用有無に関する情報を保持していれば良く、例えば使用されていないアドレスを保持していても良い。
【００３７】
また、上述の実施の形態では、プログラム作成装置１００は命令変換処理及びアドレス変換処理の両方を実行する例を示したが、本発明はこれに限定されず、命令変換処理又はアドレス変換処理の少なくともいずれか一方のみを実行しても良い。
【符号の説明】
【００３８】
１００  プログラム作成装置
１１０  ソースプログラム入力部
１２０  コンパイラ
１３０  ソースプログラム変換部
１３１  命令対応テーブル
１３２  命令変換ライブラリ
１３３  アドレス範囲テーブル
１３４  アドレス使用テーブル
【図１】
2019016037.tif 000003
【図２】
2019016037.tif 000004
【図３】
2019016037.tif 000005
【図４】
2019016037.tif 000006
【図５】
2019016037.tif 000007
【図６】
2019016037.tif 000008
【図７】
2019016037.tif 000009
【図８】
2019016037.tif 000010
【図９】
2019016037.tif 000011
【図１０】
2019016037.tif 000012
【図１１】
2019016037.tif 000013
【図１２】
2019016037.tif 000014
【図１３】
2019016037.tif 000015
【図１４】
2019016037.tif 000016
【図１５】
2019016037.tif 000017