(57)【要約】【課題】 ユーザプログラムがソースコードへの逆変換が困難なオブジェクトコードとされたＰＬＣにおいて、編集が完了したソースコードをプログラム開発支援装置からＰＬＣへ転送するに際して、転送効率を向上させつつも、ＰＬＣ側におけるオブジェクトコードとソースコードとの不一致の発生を未然に防止すること。【解決手段】 ユーザプログラムのソースコードを格納するためのソースコード格納手段と、ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定する判定手段とを備えた。【選択図】 図９
2008033916.tif 000002
【特許請求の範囲】
【請求項１】
実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたＰＬＣにおいて、
ユーザプログラムのソースコードを格納するためのソースコード格納手段と、
ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、
オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定する判定手段とを備えた、ことを特徴とするＰＬＣ。
【請求項２】
格納した情報を外部から読出可能なメモリを有し、
前記判定手段は、判定結果を前記メモリ上に格納する、ことを特徴とする請求項１に記載のＰＬＣ。
【請求項３】
実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされ、かつ
ユーザプログラムのソースコードを格納するためのソースコード格納手段と、
ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、
格納した情報を外部から読出可能なメモリと、
オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定し、判定結果を前記メモリ上に格納する判定手段とを備えたＰＬＣと、接続可能なプログラム開発支援装置において、
前記判定結果を前記メモリから読み出すための判定結果読出手段と、
前記判定結果読出手段により読み出された判定結果に基づいてソースコードが未転送であることを表示する表示手段とを備えた、ことを特徴とするプログラム開発支援装置。
【請求項４】
ＰＬＣとプログラム開発支援装置とを通信を介して結んでなるＰＬＣシステムであって、
前記ＰＬＣは、
実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされ、かつ
ユーザプログラムのソースコードを格納するためのソースコード格納手段と、
ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、
格納した情報を外部から読出可能なメモリと、
オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定し、判定結果を前記メモリ上に格納する判定手段とを備え、
前記プログラム開発支援装置は、
前記判定結果を前記メモリから読み出すための判定結果読出手段と、
前記判定結果読出手段により読み出された判定結果に基づいてソースコードが未転送であることを表示する表示手段とを備える、ことを特徴とするＰＬＣシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたプログラマブル・コントローラ（以下、ＰＬＣと言う）に関する。
【背景技術】
【０００２】
ＰＬＣは、自身のメモリ上に格納されたユーザプログラムを実行することで、ユーザの所望の制御仕様を実現する。このユーザプログラムの作成は、一般に、（１）パソコンに代表されるユーザプログラム開発支援装置上で所望のプログラム言語を使用してソースコード（ソースプログラム）を作成する段階、（２）作成したソースコードをユーザプログラムの実行を司るＰＬＣのマイコンが実行可能なコード（オブジェクトコード）に変換する段階、（３）変換により得られたオブジェクトコードをＰＬＣへ転送して格納する段階、を経て行われる。
【０００３】
こうして作成されるオブジェクトコードから元のソースコードへの逆変換（復元）が可能な場合には、通常、ＰＬＣの側にはオブジェクトコードのみを格納すれば足りる。その一例としては、ラダープログラムが挙げられる。
【０００４】
これに対して、オブジェクトコードからソースコードへの逆変換（復元）が困難な場合には、通常、ＰＬＣの側には、オブジェクトコードのみならず、それと対応するソースコードも格納される。その一例としては、ストラクチャードテキスト（ＳＴ）プログラムが挙げられる。
【０００５】
このようにオブジェクトコードとソースコードとの双方をＰＬＣに格納する場合、ＰＬＣ上のユーザプログラムの編集を行う際には、ＰＬＣからソースコードを開発支援装置へと読み出したのち、前述の３つの段階の処理を行う（特許文献１参照）。
【特許文献１】特開２００２−３３３９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ここで問題となるのは、編集が完了したソースコードをいつＰＬＣへ格納するかである。オブジェクトコードをＰＬＣに転送する際に自動的にソースコードも転送するようなプログラム開発支援装置の場合には、僅かの変更を頻繁に繰り返すようなデバッグの際には、ソースコードの転送時間が負担となる。
【０００７】
一方、ソースコードの転送をユーザに委ねるようなプログラム開発支援装置の場合には、ソースコードの転送し忘れが発生すると、ＰＬＣ上において、オブジェクトコードとソースコードとの不一致が生じてしまい問題となる。
【０００８】
この発明は上述の問題点に着目してなされたものであり、その目的とするところは、この種の実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたＰＬＣにおいて、編集が完了したソースコードをプログラム開発支援装置からＰＬＣへ転送するに際して、転送効率を向上させつつも、ＰＬＣ側におけるオブジェクトコードとソースコードとの不一致の発生を未然に防止することにある。
【課題を解決するための手段】
【０００９】
上述の課題を解決するためには、次のような構成を有する、ＰＬＣ、プログラム開発支援装置、及びＰＬＣシステムを採用することができる。
【００１０】
すなわち、このＰＬＣは、実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたＰＬＣにおいて、ユーザプログラムのソースコードを格納するためのソースコード格納手段と、ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定する判定手段とを備えたものとして把握することができる。このとき、格納した情報を外部から読出可能なメモリ（例えば、フラグに相当する）を有し、前記判定手段は、判定結果を前記メモリ上に格納する、ように構成しても良い。
【００１１】
また、このプログラム開発支援装置は、実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされ、かつユーザプログラムのソースコードを格納するためのソースコード格納手段と、ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、格納した情報を外部から読出可能なメモリと、オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定し、判定結果を前記メモリ上に格納する判定手段とを備えたＰＬＣと、接続可能なプログラム開発支援装置において、前記判定結果を前記メモリから読み出すための判定結果読出手段と、前記判定結果読出手段により読み出された判定結果に基づいてソースコードが未転送であることを表示する表示手段とを備えたものとして把握することができる。
【００１２】
また、このＰＬＣシステムは、ＰＬＣとプログラム開発支援装置とを通信を介して結んでなるＰＬＣシステムであって、前記ＰＬＣは、実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされ、かつユーザプログラムのソースコードを格納するためのソースコード格納手段と、ユーザプログラムのオブジェクトコードを格納するためのオブジェクトコード格納手段と、格納した情報を外部から読出可能なメモリと、オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定し、判定結果を前記メモリ上に格納する判定手段とを備え、前記プログラム開発支援装置は、前記判定結果を前記メモリから読み出すための判定結果読出手段と、前記判定結果読出手段により読み出された判定結果に基づいてソースコードが未転送であることを表示する表示手段とを備えるものとして把握することができる。
【００１３】
上述の構成よりなるＰＬＣ、プログラム開発支援装置、ＰＬＣシステムによれば、オブジェクトコード格納手段に格納されているオブジェクトコードが変更されたときに、当該オブジェクトコードに対応するソースコードがソースコード格納手段に格納されたか否かを判定する判定手段を有することから、接続開始時の処理、アップロード開始時の処理、オブジェクトコード転送時の処理、接続終了時の処理のそれぞれにおいて、その判定結果を適宜に利用することにより、転送効率を向上させつつも、ＰＬＣ側におけるオブジェクトコードとソースコードとの不一致の発生を未然に防止することができる。
【発明の効果】
【００１４】
この発明によれば、この種の実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたこの種のＰＬＣにおいて、編集が完了したソースコードをプログラム開発支援装置からＰＬＣへ転送するに際して、転送効率を向上させつつも、ＰＬＣ側におけるオブジェクトコードとソースコードとの不一致の発生を未然に防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下に、この発明に係るＰＬＣシステムの好適な実施の一形態を添付図面を参照しながら詳細に説明する。
【００１６】
本発明に係るＰＬＣシステムの一例を示す外観構成図が図１に示されている。同図に示されるように、このＰＬＣシステムは、ＰＬＣ１とプログラム開発支援装置２とを通信ケーブル４で結んで構成されている。図示のＰＬＣ１はビルディングブロックタイプに構成され、電源ユニット１０とＣＰＵユニット１１と複数台のＩＯユニット１２と特殊機能ユニット１３とを含んでいる。これらのユニット１０〜１３は、バックプレーン３上に敷設された図示しないシステムバス上のコネクタを介して互いに電気的に結ばれている。
【００１７】
ＣＰＵユニット１１内には、図示しないが、一般的には、ＩＯデータや各種変数データ等を格納するためのＩＯメモリと、ユーザプログラムを格納するためのプログラムメモリと、各種演算実行のためのワークエリアとして使用されるワークメモリと、ＰＬＣとしての各種の機能を実現するためのシステムプログラムメモリとが含まれている。
【００１８】
ＰＬＣに内蔵されたマイクロプロセッサは、システムプログラムメモリから読み出したシステムプログラムを実行することによって、ＰＬＣとしての各種の機能を実現する。本発明に関連する各種の機能についても、このマイクロプロセッサが該当するシステムプログラムを実行することによって実現されるものである。なお、ＰＬＣの基本的な機能については、当業者にはよく知られているように、電源投入直後のイニシャライズ処理を経た後、ＲＵＮモードに設定されていることを条件として、ＩＯリフレッシュ処理、ユーザ命令実行処理、周辺サービス処理をサイクリックに実行するものである。
【００１９】
一方、プログラム開発支援装置２は、パソコン等の汎用コンピュータに対して所定のアプリケーションプログラムをインストールすることにより構成されている。このアプリケーションプログラムには、プログラム開発支援装置に必要な各種の機能を実現するための処理が含まれている。後述するプログラム開発支援装置側の本発明と関連する各種の機能も、このアプリケーションプログラムによって実行されるものである。
【００２０】
次に、本発明に係るＰＬＣシステムの模式的要部構成図が図２に示されている。同図に示されるように、ＰＬＣ１に関して、本発明と関連する主要構成要素としては、ソースメモリＭ１とプログラムメモリＭ２とソース未転送フラグＦ１とを挙げることができる。同様にして、プログラム開発支援装置２に関して、本発明と関連する主要構成要素としては、ＳＴプログラム（ＰＧ）とコンパイラ（ＣＰ）とオブジェクトコード（ＯＣ）とソース未転送フラグ監視機能（ＭＴＲ）とを挙げることができる。
【００２１】
プログラム開発支援装置２において、ＳＴプログラム（ＰＧ）は本発明のソースコードに相当する。このＳＴプログラム（ＰＧ）は、プログラム開発支援装置に組み込まれたプログラム作成機能やプログラム編集機能を利用して、適宜改変される。コンパイラ（ＣＰ）は所定のユーザ操作によって起動され、ＳＴプログラム（ＰＧ）をコンパイルすることによって、オブジェクトコード（ＯＣ）に変換する。オブジェクトコード（ＯＣ）は、ＰＬＣ１の命令実行機能によって、直接実行可能な形態を有する。後に詳細に説明するように、ＳＴプログラム（ＰＧ）及びオブジェクトコード（ＯＣ）は、プログラム開発支援装置２の側からＰＬＣ１の側へと転送可能に構成されている。
【００２２】
一方、ＰＬＣ１の側では、ソースコードに相当するＳＴプログラム（ＰＧ）はソースメモリＭ１に格納され、オブジェクトコード（ＯＣ）はユーザプログラムとしてプログラムメモリＭ２に格納される。こうしてプログラムメモリＭ２に格納されたオブジェクトコード（ＯＣ）は、ＰＬＣ１に備えつけられた命令実行機能を介して実行され、これにより所望の制御仕様が実現される。なお、ソースメモリＭ１とプログラムメモリＭ２は異なるメモリとして構成しても良いし、同じメモリ上の異なるメモリエリアとして構成しても良い。
【００２３】
ＰＬＣ１内には、本発明に関連して新たにソース未転送フラグＦ１が設けられる。ソース未転送フラグＦ１の置き場所としては、例えばＩＯメモリやデータメモリの一部とすることが考えられる。これに対応して、プログラム開発支援装置２の側には、ソース未転送フラグ監視機能（ＭＴＲ）が設けられる。このソース未転送フラグ監視機能（ＭＴＲ）は、パソコンに組み込まれるアプリケーションプログラムによって実現される。
【００２４】
以上説明したソースコード転送機能、オブジェクトコード転送機能、ソース未転送フラグ監視機能を適宜に組み合わせることによって、以下に述べるように本発明の各種の機能が実現される。
【００２５】
まず、接続開始時におけるプログラム開発支援装置及びＰＬＣの処理を図３のフローチャートを参照しながら説明する。同図に示されるように、プログラム開発支援装置側においてユーザ操作にしたがってＰＬＣとの接続を開始する（ステップ３０１）。これを受け
て、ソース未転送フラグＦ１をモニタする処理（ステップ３０２）が実行される。このモニタ処理（ステップ３０２）においては、プログラム開発支援装置からＰＬＣへと送信リクエストａを送信する。すると、ＰＬＣの側では、ソース未転送フラグの状態を返す処理（ステップ３１１）が実行される。すると、ＰＬＣ１側からプログラム開発支援装置側へとレスポンスｂが返送され、モニタ処理（ステップ３０２）が完了する。
【００２６】
続くステップ３０３では、ソース未転送フラグＦ１の状態がチェックされる。ここで、ソース未転送フラグＦ１がＯＮであれば、プログラム開発支援装置２の側ではディスプレイ上にソースコードが未転送である旨を表示し、しかる後、オンライン操作開始処理（ステップ３０５）へと移行する。
【００２７】
これに対して、ステップ３０３において、ソース未転送フラグがＯＦＦと判定されると、ソースが未転送である旨の表示処理（ステップ３０４）はスキップされ、直ちにオンライン操作開始処理（ステップ３０５）への移行が行われる。
【００２８】
このような構成によれば、プログラム開発支援装置２とＰＬＣ１との接続開始時において、ソース未転送フラグのモニタ結果が、ソース未転送の状態であると、直ちにその旨がディスプレイ上に表示されるから、これにより、オペレータは、前回の接続断時にソースコードが未転送であったことを気づくことができ、この状態ではＰＬＣからプログラム開発支援装置へとプログラムの転送（アップロードと呼ぶ）を行う場合、正確にソースコードが再現されないことを察知することができる。
【００２９】
次に、アップロード開始時のプログラム開発支援装置及びＰＬＣの処理を図４を参照しながら説明する。同図に示されるように、アップロード機能が選択されるのを待って（ステップ４０１）、ソース未転送フラグＦ１をモニタする処理（ステップ４０２）が実行される。先に説明したように、このモニタ処理（ステップ４０２）においては、送信リクエストａとそれに対するレスポンスｂとを介して、ソース未転送フラグＦ１の状態をモニタする。
【００３０】
続くステップ４０３においては、ソース未転送フラグＦ１の状態がチェックされ、ソース未転送フラグＦ１がＯＮであれば、ディスプレイ上には操作ができない旨の表示が行われるのに対し（ステップ４０４）、ソース未転送フラグがＯＦＦであれば、直ちにアップ
ロード処理への移行が行われ（ステップ４０５）、正常にアップロードが行われる。
【００３１】
このような構成によれば、ユーザがプログラム開発支援装置２を適宜操作して、アップロード機能を選択すると、直ちにＰＬＣ１側におけるソース未転送フラグＦ１の状態がモニタされ、そのモニタ結果がソース未転送の状態であると、プログラム開発支援装置２のディスプレイ上には操作ができない旨が表示されるから、この警告表示によって、オペレータはＰＬＣ１からアップロードされたソースコードであるＳＴプログラム（ＰＧ）が正確に再現されていないにも拘わらず、これを正常なものと誤認する虞れを確実に回避することができる。
【００３２】
次に、オブジェクトコード転送時におけるプログラム開発支援装置及びＰＬＣの処理を図５のフローチャートを参照しながら説明する。同図に示されるように、ユーザにより転送機能が選択されると（ステップ５１１）、ユーザに対する確認処理（ステップ５１２）が実行される。
【００３３】
この確認処理（ステップ５１２）においては、ユーザに対して、オブジェクトコードのみを転送する（「１」）、またはオブジェクトコード及びソースコードをともに転送する（「２」）のいずれを選択するかの確認を行う。この確認処理は、図６（ａ）に示されるように、ディスプレイ上に小ウィンドウＷ１を表示することで行われる。
【００３４】
この小ウィンドウＷ１には、ユーザに対する指示文「オブジェクトコードをＰＬＣに転送します。以下のいずれかの方法を選択してください。」、第１の回答文「オブジェクトコードのみを転送する」、第２の回答文「オブジェクトコードとソースコードの両方を転送する」が表示されている。また第１の回答文の頭にはラジオボタンＢ１３が、第２の回答文の頭にはラジオボタンＢ１４が表示される他、ウィンドウの右上にはＯＫボタンＢ１１及びキャンセルボタンＢ１２が表示される。従って、オペレータは、ラジオボタンＢ１３又はＢ１４のいずれかをオン状態とした後、ＯＫボタンＢ１１を操作することによって、オペレータの意思をプログラム開発支援装置に伝えることができる。
【００３５】
なお、図６（ｂ）に示されるように、従来例にあっては、同様な小ウィンドウＷ２をディスプレイ上に表示はさせるものの、この小ウィンドウＷ２内には質問文「オブジェクトコードとソースコードをＰＬＣに転送します。よろしいですか？」が一通りしか表示されていないから、オブジェクトコードのみを転送するという選択肢は存在しない。
【００３６】
図５のフローチャートに戻って、ステップ５１２に続いてステップ５１３が実行されると、選択肢のうちのどちらを選択したかの判定が行われる。ここで選択肢として「１」が選択された場合には、続いてサブルーチン「１」が実行されるのに対して（ステップ５１４）、選択肢として「２」が選択された場合には、続いてサブルーチン「２」が実行される（ステップ５１５）。
【００３７】
ここで、サブルーチン「１」の詳細フローチャートが図７に示されている。同図に示されるように、処理が開始されると、プログラム開発支援装置２の側では転送開始の通知処理（ステップ７０１）が実行される。すると、メッセージｃがＰＬＣ側へと送られて、ＰＬＣ側においては、転送可能な状態（送信されてくるオブジェクトコードを受信可能な状態）への移行が行われる（ステップ７１１）。同時に、ＰＬＣ側１においては、ソース未転送フラグＦ１の状態がＯＮに設定される（ステップ７１２）。
【００３８】
しかる後、プログラム開発支援装置２の側では、ＰＬＣ１の側へとオブジェクトコード（ＯＣ）を転送する処理が実行される（ステップ７０２）。すると、プログラム開発支援装置２の側からＰＬＣ１の側へとオブジェクトコード（ＯＣ）に相当するデータが送信され、これを受けてＰＬＣ１の側ではオブジェクトコード（ＯＣ）をプログラムメモリに格納する処理を実行する（ステップ７１３）。
【００３９】
しかる後、プログラム開発支援装置２の側では、転送終了を通知する処理を実行する（ステップ７０３）。すると、プログラム開発支援装置２の側からＰＬＣ１の側へとメッセージｅが送信され、これを受けて、ＰＬＣ１の側では転送可能状態を終了する処理（ステップ７１４）を実行した後、ソースコード（ＰＧ）が転送されたか否かの判定を行う（ステップ７１５）。
【００４０】
この判定の仕組みを例示する。例えば、ステップ７１３を実行すること
によりプログラムメモリ上のオブジェクトコードが変更されたことを記憶しておき、当該オブジェクトコードが変更されたにもかかわらず、ソースコードを受信せずに転送可能状態を終了する処理（ステップ７１４）を実行した場合は、ソースコードが転送されていないと判定するように構成することができる。
【００４１】
また、別の例としては、プログラム開発支援装置はオブジェクトコードを転送後、引き続き、ソースコードとして数バイト程度のデータ（ソースコードとしては不正なコード）をＰＬＣへ送信するように構成する。一方、ＰＬＣ側はソースコードとして受信したデータが不正な場合は、ソースコードを受信しなかったものと記憶しておくことでソースコードが転送されていないと判定するように構成することができる。
【００４２】
さらに、別の例としては、オブジェクトコードやソースコードを正常に受信し、格納した場合にはそのときの日付と時刻の情報を格納するように構成する。そして、図７のステップ７１５の判定処理においてオブジェクトコード格納時の日付と時刻の情報と、ソースコード格納時の日付と時刻の情報を比較することでソースコードが転送されたかどうか判定するように構成しても良い。具体的には、ソースコード格納時の日付と時刻の情報がオブジェクトコード格納時の日付と時刻の情報より古い場合は、オブジェクトコードが転送されたにもかかわらずソースコードが転送されていないと判断することができる。
【００４３】
ここで、ソースコード（ＰＧ）が転送されていた場合には、ステップ７１６へ進んでソース未転送フラグＦ１をＯＦＦに戻したのち処理を終了するのに対し、ソースコード（ＰＧ）が転送されていないと判定されたときには、ソース未転送フラグＦ１のＯＦＦ処理は行われることなく、処理は終了する。
【００４４】
このような構成によれば、転送開始とともにＯＮにセットされたソース未転送フラグＦ１は、転送終了時にソースコード（ＰＧ）が転送されていた場合に限ってＯＦＦに戻されるから、ソース未転送フラグＦ１の状態は、ソースコード（ＰＧ）が転送されたか否かを確実に表すものとなる。
【００４５】
次に、サブルーチン「２」の詳細フローチャートが図８に示されている。同図において、処理が開始されると、まず、転送開始の通知処理が実行され（ステップ８０１）、プログラム開発支援装置２の側からＰＬＣ１の側へと所定のメッセージｃが送られる。これを受けて、ＰＬＣ１の側では、転送可能状態とする処理を実行する（ステップ８１１）。同時に、ソース未転送フラグＦ１をＯＮにする処理を実行する（ステップ８１２）。
【００４６】
しかる後、プログラム開発支援装置２の側では、オブジェクトコード（ＯＣ）を転送する処理を実行する（ステップ８０２）。すると、オブジェクトコード（ＯＣ）に相当するデータｄがプログラム開発支援装置２の側からＰＬＣ１の側へと転送される。ＰＬＣ１の側では、受信したオブジェクトコード（ＯＣ）をプログラムメモリ（Ｍ２）に格納する処理を実行する（ステップ８１３）。
【００４７】
しかる後、プログラム開発支援装置２の側では、ソースコード（ＰＧ）を転送する処理を実行する（ステップ８０３）。すると、プログラム開発支援装置２の側からＰＬＣ１の側へとソースコードに相当するデータｆが転送される。すると、ＰＬＣ１の側では、受信したソースコード（ＰＧ）をソースメモリ（Ｍ１）に格納する処理を実行する（ステップ８１４）。
【００４８】
しかる後、プログラム開発支援装置２の側では、転送終了を通知する処理を実行する（ステップ８０４）。すると、プログラム開発支援装置２の側からＰＬＣ１の側へと所定のメッセージｅが転送され、これを受けて、ＰＬＣ１の側では、転送可能状態を終了する処理を実行する（ステップ８１５）。その後、ＰＬＣ１の側では、ソースコード（ＰＧ）が転送されたか否かの判定処理を実行する（ステップ８１６）。
【００４９】
ここで、ソースコード（ＰＧ）が転送されたと判定された場合には、ステップ８１７へと進んで、ソース未転送フラグＦ１はＯＦＦへと戻されるのに対し、ソースコード（ＰＧ）が転送されていないと判定された場合には、ステップ８１７はスキップされる結果、ソース未転送フラグＦ１はＯＮ状態に保持される。
【００５０】
図７のフローチャート及び図８のフローチャートの説明から明らかなように、図５のフローチャートにおいて、サブルーチン「１」が実行された場合には、オブジェクトコード（ＯＣ）のみの転送処理が実行される結果、転送終了時においては、ソース未転送フラグＦ１はＯＮ状態に保持されるのに対し、サブルーチン「２」が実行された場合には、オブジェクトコード（ＯＣ）及びソースコード（ＰＧ）が共に転送される結果、ソース未転送フラグＦ１はＯＦＦに戻される。
【００５１】
そのため、図５のフローチャートにおいて、ステップ５１８のソース未転送フラグチェック処理が実行されると、サブルーチン「１」が実行されたときには、ソース未転送フラグはＯＮとなるため、ソースコードが未転送である旨の表示が行われるのに対し（ステップ５１９）、サブルーチン「２」が実行されたときには、ステップ５１８におけるソース未転送フラグチェック結果はＯＦＦとなるため、未転送である旨の表示処理（ステップ５１９）はスキップされて、ユーザに対して警告が行われることはない。
【００５２】
次に、接続終了時におけるプログラム開発支援装置及びＰＬＣの処理を図９のフローチャートを参照しながら説明する。同図に示されるように、ＰＬＣ１との接続断の開始が検出されると（ステップ９０１）、ソース未転送フラグＦ１のモニタ処理が実行され（ステップ９０２）、送信リクエストａ及びレスポンスｂを介してソース未転送フラグの状態がモニタされる。
【００５３】
続いて、ソース未転送フラグＦ１の状態がチェックされ（ステップ９０３）、ここでソース未転送フラグＦ１がＯＦＦであれば、ステップ９０８へと移って、ＰＬＣ１との接続断処理（ステップ９０８）が実行され、正常に接続断が行われる。
【００５４】
これに対して、チェック処理（ステップ９０３）の結果、ソース未転送フラグＦ１がＯＮであれば、ステップ９０４へ進んで、ソースが未転送である旨の表示処理が実行される。このとき、図１０に示されるように、ディスプレイ上には、小ウィンドウＷ３が表示される。この小ウィンドウＷ３内には、質問文「ＰＬＣにソースコードが転送されていません。ソースコードを転送します。よろしいですか？」が表示されると共に、ＯＫボタンＢ３１及びキャンセルボタンＢ３２が表示される。
【００５５】
ここで、ユーザがＯＫボタンＢ３１を操作すれば、ステップ９０５へ進んで、転送開始の通知処理が実行され、所定のメッセージｃがＰＬＣ１側へと送られる。ＰＬＣ１側では、このメッセージを受けて、転送可能状態とする処理を実行する（ステップ９１２）。同時に、ソース未転送フラグＦ１をＯＮにする処理を実行する（ステップ９１３）。
しかる後、プログラム開発支援装置２の側では、ソースコード（ＰＧ）を転送する処理を実行する。すると、プログラム開発支援装置２の側からＰＬＣ１の側へとソースコード（ＰＧ）に相当するデータｆが転送され、これを受けて、ＰＬＣ１の側では、ソースコード（ＰＧ）をソースメモリ（Ｍ１）に格納する処理を実行する（ステップ９１４）。
【００５６】
しかる後、プログラム開発支援装置２の側では、転送終了を通知する処理を実行する（ステップ９０７）。すると、プログラム開発支援装置２の側からＰＬＣ１の側へと所定のメッセージｅが転送され、これを受けてＰＬＣ１の側では、転送可能状態を終了する処理を実行する（ステップ９１５）。加えて、ＰＬＣ１の側では、ソースコード（ＰＧ）が転送されたか否かの判定処理を実行する（ステップ９１６）。
【００５７】
ここでソースコード（ＰＧ）が転送されたと判定された場合には、ステップ９１７へ進んで、ソース未転送フラグＦ１の状態はＯＦＦに戻されるのに対し、ソースコード（ＰＧ）が転送されていないと判定された場合には、ステップ９１７はスキップされる結果、ソース未転送フラグＦ１の状態はＯＮ状態に維持される。
【００５８】
以上説明したように、上述の実施例によれば、接続開始時の処理（図３）、アップロード開始時の処理（図４）、オブジェクトコード転送時の処理（図５）、接続終了時の処理（図９）のそれぞれにおいて、適当なタイミングでソース未転送フラグＦ１のモニタ処理が実行され、その結果に基づいて、その時々の最適なバックアップ処理が実行される結果、ユーザはソースコード未転送に基づく不測の事態を確実に回避できるという利点がある。
【００５９】
加えて、この実施例によれば、特に図５のフローチャートに示されるように、オブジェクトコードのみを転送するサブルーチン「１」とオブジェクトコード及びソースコードを共に転送するサブルーチン「２」を適宜選択できるから、頻繁に小規模なプログラム改変を繰り返すデバッグ時においては、サブルーチン「１」を選択することによって、転送負荷を軽減して処理時間を短縮できるのに対し、接続終了時などにあっては、サブルーチン「２」を選択することによって、ソースコード未転送のまま処理が終了する事態を確実に回避できるという利点があるのである。
【００６０】
以上の実施例では、オブジェクトコード転送後のソースコード未転送の状態であることの判断は、ＰＬＣ側が行うように構成するものである。他の実施例としては、ＰＬＣがオブジェクトコードやソースコードを正常に受信し、格納した場合にはそのときの日付と時刻の情報を格納するようにし、プログラム開発支援装置から要求された場合にはその日付と時刻の情報を返送するようにＰＬＣを構成する。そして、プログラム開発支援装置はＰＬＣから受信したオブジェクトコード格納時の日付と時刻の情報と、ソースコード格納時の日付と時刻の情報を比較することでソースコードが転送されたかどうか判定するように構成しても良い。具体的には、ソースコード格納時の日付と時刻の情報がオブジェクトコード格納時の日付と時刻の情報より古い場合は、オブジェクトコードが転送されたにもかかわらずソースコードが転送されていないと判断することができる。
【産業上の利用可能性】
【００６１】
本発明によれば、この種の実行すべきユーザプログラムが、ソースコードへの逆変換が困難なオブジェクトコードとされたＰＬＣにおいて、編集が完了したソースコードをプログラム開発支援装置からＰＬＣへ転送するに際して、転送効率を向上させつつも、ＰＬＣ側におけるオブジェクトコードとソースコードとの不一致の発生を未然に防止することができる。
【図面の簡単な説明】
【００６２】
【図１】本発明に係るＰＬＣシステムの一例を示す外観構成図である。
【図２】本発明に係るＰＬＣシステムの模式的要部構成図である。
【図３】接続開始時の処理を示すフローチャートである。
【図４】アップロード開始時の処理を示すフローチャートである。
【図５】オブジェクトコード転送時の処理を示すフローチャートである。
【図６】オブジェクトコード転送時の案内表示を示す説明図である。
【図７】サブルーチン「１」の詳細フローチャートである。
【図８】サブルーチン「２」の詳細フローチャートである。
【図９】接続終了時の処理を示すフローチャートである。
【図１０】ソースコード転送時の案内表示を示す説明図である。
【符号の説明】
【００６３】
１    ＰＬＣ
２    プログラム開発支援装置
３    バックプレーン
４    通信ケーブル
１０  電源ユニット
１１  ＣＰＵユニット
１２  ＩＯユニット
１３  特殊機能ユニット
ａ    送信リクエスト
ｂ    レスポンス
Ｂ１１ ＯＫボタン
Ｂ１２ キャンセルボタン
Ｂ１３，Ｂ１４ ラジオボタン
Ｂ２１ ＯＫボタン
Ｂ２２ キャンセルボタン
Ｂ３１ ＯＫボタン
Ｂ３２ キャンセルボタン
ＣＰ コンパイラ
Ｆ１ ソース未転送フラグ
Ｍ１ ソースメモリ
Ｍ２ プログラムメモリ
ＭＴＲ ソース未転送フラグ監視機能
ＯＣ オブジェクトコード
ＰＧ ＳＴプログラム
Ｗ１，Ｗ２，Ｗ３ 小ウィンドウ
【図１】
2008033916.tif 000003
【図２】
2008033916.tif 000004
【図３】
2008033916.tif 000005
【図４】
2008033916.tif 000006
【図５】
2008033916.tif 000007
【図６】
2008033916.tif 000008
【図７】
2008033916.tif 000009
【図８】
2008033916.tif 000010
【図９】
2008033916.tif 000011
【図１０】
2008033916.tif 000012