JP3781112B2 - プログラマブルコントローラ・システム - Google Patents

プログラマブルコントローラ・システム Download PDF

Info

Publication number
JP3781112B2
JP3781112B2 JP2002127472A JP2002127472A JP3781112B2 JP 3781112 B2 JP3781112 B2 JP 3781112B2 JP 2002127472 A JP2002127472 A JP 2002127472A JP 2002127472 A JP2002127472 A JP 2002127472A JP 3781112 B2 JP3781112 B2 JP 3781112B2
Authority
JP
Japan
Prior art keywords
program
program block
programmable controller
command
block
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.)
Expired - Fee Related
Application number
JP2002127472A
Other languages
English (en)
Other versions
JP2003015709A (ja
Inventor
俊司 桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2002127472A priority Critical patent/JP3781112B2/ja
Publication of JP2003015709A publication Critical patent/JP2003015709A/ja
Application granted granted Critical
Publication of JP3781112B2 publication Critical patent/JP3781112B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、ブロック単位実行型プログラマブルコントローラと、1若しくは2以上のプログラマブルコントローラ、サポートツール、ホストコンピュータ等の他の装置とを、コモンバスやネットワーク等で結んでなるプログラマブルコントローラ・システムに係り、特に、機器構成の変更に対してもプログラムの変更の負担を最小限に留めることができるようにしたプログラマブルコントローラ・システムに関する。
【0002】
【従来の技術】
昨今のネットワーク技術の発達により、設備や装置を制御するためのプログラマブルコントローラにおいても、通信速度を含む情報伝達能力は飛躍的に向上してきている。また、プログラマブルコントローラの低コスト化や小サイズ化により、複数のプログラマブルコントローラを通信により相互接続したシステム構成と高速で大容量な大型プログラマブルコントローラ1台によるシステムとを比較しても、コスト面でもスペース効率面でも遜色ないような状況になっている。
【0003】
制御システムにおいて、ネットワークを使ってプログラマブルコントローラを分散させると、以下のようなメリットが生ずる。
(1)ハードウェアの構成上並びに配置上、システム構築手段に柔軟性が生ずるため、設備や装置の組み替えが容易となる。
(2)処理が複数のプログラマブルコントローラに負荷分散されるため、個々のプログラマブルコントローラに求められる性能が抑えられ、安価なプログラマブルコントローラの利用が可能となる。
(3)プログラマブルコントローラの故障の際でも、システムを構成するプログラマブルコントローラが複数に分かれているため、システムダウンする範囲が一部にとどめられ、システム全体の信頼性が向上する。
【0004】
このように設備や装置の構成、並びに、負荷分散や最適なパフォーマンス等のために、複数のプログラマブルコントローラによりシステムを構築することができるようになってきたため、今後、制御システムの分散化傾向はより強まるものと予想される。
【0005】
一方、半導体メモリのコストダウン、マイコンチップの高性能化に相まって、1台のプログラマブルコントローラで制御できる入出力点数が飛躍的に増加している傾向にある。これに比例して、プログラマブルコントローラのプログラム容量も増加している。
【0006】
また、プログラマブルコントローラを組み込むことで設計される各種機械や製造設備自身の高機能化も、プログラム容量の倍々化に拍車をかけている。
【0007】
このような傾向の中で、プログラマブルコントローラには近年、大容量のプログラムを効率よくまた品質よく設計するために、また再利用やメンテナンス管理のために、プログラムを分割や階層化したりブロック分割する機能が付け加えられている傾向にある。
【0008】
加えて、プログラマブルコントローラを用いたシステムの開発保守環境面でも、ブロック分割されたプログラムデータを個別にプログラマブルコントローラにダウンロードやアップロードする機能を持つサポートツールも考案されつつある。
【0009】
ユーザはこの機能を利用して、分割ブロック化したプログラムを1台のプログラマブルコントローラにて制御される複数の装置のうちの個々の装置に割り当てたり、装置内の独立性の高い機能ユニット個々と対応させることで、プログラム設計において装置毎や機能毎の設計を順次または複数の作業者で分担して行うことで、その生産性を高めている。
【0010】
この機能はプログラマブルコントローラ内のプログラムの機能分割をより明確なものとできるため、1台のプログラマブルコントローラで複数の制御対象を制御しているような場合にも、対象毎にプログラムをブロック分割した形でプログラミングされている。
【0011】
先に述べたネットワークによるシステムの分散化とアプリケーションプログラムの分割を組み合わせることにより、分散方法はより柔軟になり、プログラマブルコントローラという単位ではなく、ネットワークに跨ったプログラムブロック単位での分散が可能となっている。
【0012】
分散したプログラマブルコントローラ上の、それぞれのプログラム間のやりとりは、ネットワークを介したデータ交換を利用して行われ、現状の方式としては、要求を伝えたい相手に対してその内容を伝えるコマンドと、相手側からの回答となるレスポンスで行われるメッセージサービス方式、複数のプログラマブルコントローラ上であたかも同じメモリ領域を共有しているように、各プログラマブルコントローラにそれぞれ共有メモリを設け、その共有メモリ同士が互いに共有のデータを記憶するべく、プログラマブルコントローラ間のデータを交換するコモンメモリ方式の2つがあるが、基本的にはプログラマブルコントローラに跨ったプログラム間で動作のインタフェースとなるデータ仕様を定めて、それをプログラム上で交換する形となる。
【0013】
【発明が解決しようとする課題】
プログラマブルコントローラを分散させることは必然的にアプリケーションプログラムの分散を伴うため、従来の1台のプログラマブルコントローラを使ったシステムの構築と比較して、以下の弊害が発生している。
【0014】
(1)1台のプログラマブルコントローラを使用している際には、1本のプログラムとしてプログラミングされていた動作が、物理的に複数のプログラムに分かれてしまい、かつプログラム間のインタフェースが基本的には単純なデータの受け渡しを用いるしかないため、複雑なプログラミングになりやすい。
【0015】
プログラマブルコントローラが物理的に分離すると、個々のプログラマブルコントローラのプログラミングも、複数のプログラマーで分担作業をとりやすくなる。その弊害としてプログラミングロジックの変更やデータのアドレス割付の変更が他のプログラマーに伝わりにくくなる。そのため、プログラム間の不整合による不具合を招きやすくなる。複数のプログラマブルコントローラのプログラム間のインタフェースがあるデータ格納場所を使ってのやりとりで行われている場合、その変更の頻度は比較的高く、プログラム間の不整合による不具合を招く大きな原因となっている。
【0016】
他のプログラマブルコントローラに接続される装置や機器(I/O)の状態や、内部で生成される各種データを用いて自プログラマブルコントローラ内で何らかの処理を行おうとする場合、メッセージサービス方式を用いると単純なデータの交換を繰り返して相手側のデータを自プログラマブルコントローラに読み込まなければならないため、ネットワークに過度な負荷がかかりやすく、また通信の応答性能によっては変化の頻度が高いデータの取り込みが困難となる。仮にコモンメモリ方式を用いてデータ交換の頻度を上げる方法を採用しても、コモンメモリ方式は定常的に決まったデータの交換を行うため、データ交換が必要ないときでも通信処理が行われることになり、無駄なオーバヘッドが生じるとともに、交換するデータが対象にある場合は大容量のコモンメモリが必要となり必然的にコストアップを招く。
【0017】
(2)通常時の負荷を下げるために、I/Oやデータをもつ側のプログラマブルコントローラで処理を行い、結果のみを自プログラマブルコントローラに取り込むプログラミングテクニックを用いた場合でも、分散システムのメリットでもある機器構成の変更の際に、往々にして該当のロジック部分と他のロジックの境界が複雑になり、機器構成の変更に伴うプログラムの書き換えや移植作業に膨大な工程を要してしまう。
【0018】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、複数のプログラマブルコントローラにプログラムを分散配置したシステムにおいても、構造的なプログラミング手法の採用を可能とすると共に、ネットワークを介するデータ交換手段を単純かつ間接的にすることにより、機器構成の変更に対してもプログラムの変更の負担を最小限に留めることができるようにしたプログラマブルコントローラシステム、プログラマブルコントローラ、並びに、サポートツールを提供することにある。
【0019】
この発明の他の目的乃至作用効果については、明細書の以下の記載に基づいて、当業者であれば容易に理解されるであろう。
【0020】
【課題を解決するための手段】
この発明のプログラマブルコントローラ・システムは、ユーザプログラムである1若しくは2以上のプログラムブロックを格納し、かつそれらのプログラムブロックを個別に運転状態と停止状態とに切り換えて選択的に実行するブロック単位実行型プログラマブルコントローラを複数台有し、上記ブロック単位実行型プログラマブルコントローラ同士の間において、ネットワークやバスを介してデータのやり取りを行うものである。
【0021】
前記ブロック単位実行型プログラマブルコントローラには、ユーザプログラムの実行中にプログラムブロック起動命令が解読されたときには当該プログラムブロック起動命令のオペランドで指定される他のブロック単位実行型プログラマブルコントローラのプログラムブロックに対する操作を指示するプログラムブロック操作コマンドを発行するコマンド発行手段が組み込まれている。
【0022】
また、他のブロック単位実行型プログラマブルコントローラには、前記ブロック単位実行型プログラマブルコントローラから受け取ったプログラムブロック操作コマンドで指定されたプログラムブロックに対する操作を実行するコマンド対応処理実行手段が組み込まれている。
【0023】
このような構成によれば、ブロック単位実行型プログラマブルコントローラにおける各プログラムブロックを、内部条件のみならず、他のプログラマブルコントローラからのコマンドによっても適切に実行させることができる。
【0024】
この発明のプログラマブルコントローラ・システムは、ユーザプログラムである1若しくは2以上のプログラムブロックを格納することができ、かつそれらのプログラムブロックを個別に運転状態と停止状態とに切り換えて選択的に実行できるブロック単位実行型プログラマブルコントローラと、上記のプログラマブルコントローラとの間において、ネットワークやバスを介してデータのやり取りを行うサポートツールとを有する。
【0025】
そして、前記サポートツールは、オペレータによって選択された機能にしたがって、ブロック単位実行型プログラマブルコントローラのプログラムブロックに操作を指示するプログラムブロック操作コマンドを発行するコマンド発行手段が組み込まれている。
【0026】
また、ブロック単位実行型プログラマブルコントローラには、他の装置から受け取ったプログラムブロック操作コマンドで指定されたプログラムブロックに対する操作を実行するコマンド対応処理実行手段が組み込まれている。
【0027】
このような構成によれば、ブロック単位実行型プログラマブルコントローラにおける各プログラムブロックを、内部条件のみならず、外部からのコマンドによっても適切に実行させることができる。
【0028】
本発明システムの好ましい実施の一形態としては、プログラムブロック操作コマンドが、プログラムブロックの入力パラメータに、コマンドパラメータの実行パラメータデータをセットして当該プログラムブロックを起動して実行させ、その実行結果である出力パラメータデータを読み出して実行結果としてコマンド発行元へと返すことを指示する内容を有する、ものであってもよい。
【0029】
本発明システムの好ましい実施の一形態としては、プログラムブロック操作コマンドが、プログラムブロックの入力パラメータに、コマンドパラメータの実行パラメータデータをセットして当該プログラムブロックを起動して実行させることを指示する内容を有するようにしてもよい。
【0030】
本発明システムの好ましい実施の一形態としては、プログラムブロック操作コマンドが、プログラムブロックの出力パラメータデータを読み出して実行結果としてコマンド発行元へと返すことを指示する内容を有するようにしてもよい。
【0031】
本発明システムの好ましい実施の一形態としては、プログラムブロック操作コマンドが、コマンドに添えられた特定プログラムブロックを、プログラムブロック格納領域に書き込むことを指示する内容を有するようにしてもよい。
【0032】
本発明システムの好ましい実施の一形態としては、プログラムブロック操作コマンドが指定されたプログラムブロックをプログラムブロック格納領域から削除することを指示する内容を有するようにしてもよい。
【0033】
【発明の実施の形態】
以下に、この発明に係るプログラマブルコントローラ・システム(以下、PLCシステムとも言う)、プログラマブルコントローラ(以下、PLCとも言う)、並びに、サポートツールの好適な実施の一形態を添付図面を参照しつつ詳細に説明する。
【0034】
本発明のPLCシステムには、図1(a)に示されるシステム構成1と図1(b)に示されるシステム構成2とが存在する。
【0035】
図1(a)に示されるように、システム構成1のPLCシステムは、1もしくは2以上の台数のPLC1と、それらのPLCをサポートするサポートツール2と、それらのPLC1とサポートツール2とを結ぶ通信手段としてのネットワーク3とから構成されている。
【0036】
図1(b)に示されるように、システム構成2のPLCシステムは、1もしくは2以上の台数のPLC1A,1Bと、それらのPLC1A,1Bを結ぶ通信手段としてのネットワーク3とから構成されている。
【0037】
PLC1は、図示例では、専用のハードウェアを備えたビルディングブロック型のシステム構成を有するものであり、例えば、主としてユーザプログラム実行機能を司るCPUユニットと、外部機器との信号のやり取りを行う入出力ユニットと、各種のデータ演算等を司る高機能ユニット等をマザーボード上のシステムバスを介して相互に連携して構成されている。
【0038】
加えて、このPLC1のユーザプログラムメモリ(図2の103)には、ユーザプログラムをプログラムブロック単位で複数格納することができ、しかもユーザプログラムをプログラムブロック単位にて選択的に実行させることを可能とする機能が組み込まれている。なお、格納可能なプログラムブロックの数は数百から数千にも及ぶ場合がある。
【0039】
サポートツール2は、図示例では、パソコンにサポートツール用ソフトを組み込んでなるシステム構成を有するものである。ここでは、パソコンの画像表示装置がそのままサポートツールのプログラム表示用の表示器を構成することとなり、またキーボードやマウス等がそのままサポートツールの操作手段を構成することとなり、さらにパソコンのメモリがユーザプログラム保存用のメモリを構成することとなる。一般的に、サポートツール用ソフトには、ユーザプログラムの作成や編集をサポートする機能、作成や編集されたユーザプログラムをPLC側へと転送し、PLCのユーザプログラムメモリを全体単位又はプログラムブロック単位で書き替える機能、PLCのユーザプログラムメモリからユーザプログラムをブロック単位又はプログラム全体単位で読み出してメモリに保存し、サポートツールの表示画面に表示させる機能等が組み込まれている。
【0040】
なお、通信手段を構成するネットワーク3においては、所定のプロトコルを使用したシリアル通信が行われる。
【0041】
次に、プログラマブルコントローラ全体のハードウェア構成を示すブロック図が図3に示されている。なお、図において、プログラマブルコントローラ1として示されているものは、所謂ビルディングブロック型PLCのCPUユニットに相当するものであり、また入出力装置4として示されているものは、同PLCシステムのI/Oユニットに相当するものである。
【0042】
同図に示されるように、このプログラマブルコントローラ1は、CPU101と、システムプログラムメモリ102と、ユーザプログラムメモリ103と、パラメータメモリ104と、ワークメモリ105と、I/Oメモリ106と、通信インタフェース107と、I/Oインタフェース108とを含んでいる。
【0043】
CPU1は、マイクロプロセッサや専用周辺ハード等を主体として構成されており、システムプログラムメモリ102に格納されたシステムプログラムに従って、プログラマブルコントローラとしての基本的な幾つかの機能を実現するように仕組まれている。
【0044】
これらの基本的な機能としては、当業者にはよく知られているように、I/Oリフレッシュ処理、ユーザプログラム実行処理、各種の周辺サービス処理等を挙げることができる。
【0045】
I/Oリフレッシュ処理では、I/Oインタフェース108及び入出力装置4を介して外部から取り込まれた入力データにて、I/Oメモリ106の該当する入力データの内容を更新すると共に、I/Oメモリの出力データをI/Oインタフェース108及び入出力装置4を介して、外部の該当する出力端子へ送出する処理が実行される。
【0046】
ユーザプログラム実行処理では、ユーザプログラムメモリ103からユーザプログラムを構成する命令語を順に読み出しつつ、I/Oメモリを参照して演算に必要な入出力データの内容を求め、これに基づいて指定された命令を実行してその実行結果でI/Oメモリ106の出力データ、カウント値、タイマ時間等の内容を書き替える処理を実行する。
【0047】
周辺サービス処理では、通信インタフェース107、通信手段(ネットワーク)3を介してサポートツール2や他のPLCとの通情報交換を行ったり、図示しないリモートI/Oや上位パソコンとの情報交換を行うといった様々な周辺サービス処理を実行する。
【0048】
システムプログラムメモリ102は、CPU101にて実現されるべき各種の機能に対応するシステムプログラムをそれぞれ格納するものであり、基本的にはROMで構成されている。
【0049】
ユーザプログラムメモリ103には、例えばマシンベンダー等により作成された、或いはユーザ自身により作成又は修正されたユーザプログラム(アプリケーションプログラムとも言う)が、例えば、図21に示されるように、プログラムブロック単位にて格納されている。ここで、ユーザプログラム全体としてのプログラムブロックの数は、場合によっては、数百乃至数千にも及ぶ場合が知られている。ユーザプログラムメモリとしては、例えば、フラッシュメモリやバッテリバックアップされたRAM等が使用される。
【0050】
アプリケーションプログラムデータの一例を示す説明図が図25,図26に示されている。同図に示されるように、この例の場合にあっては、先頭のデータ領域情報に続けて、各プログラムブロックPBを格納することにより、アプリケーションプログラムデータが構成されている。データ領域情報は、アプリケーションプログラムデータのデータ構造を示し、プログラムブロック毎の格納場所を表している。毎サイクル起動されるプログラムブロックの一覧情報もここに格納される。従って、先頭のデータ領域情報を参照することにより、特定のプログラムブロックを選択的に実行したり、読み出したり、書き替えたりすることが可能となされている。プログラムブロックのデータは、プログラム運転処理にて実行される命令語群を実行順に格納したものである。なお、プログラムブロックの数に応じて、データ領域の容量も増減する。
【0051】
プログラムブロックの構造を示す説明図が図22に示されている。同図に示されるように、各プログラムブロックは、『プログラムブロック識別子』と、『入力パラメータ』と、『出力パラメータ』と、『プログラムブロック本体』とから構成されている。ここで、『プログラムブロック識別子』とは、プログラムブロックのID番号のことである。プログラムブロックID番号は、プログラマブルコントローラ内でのユニークな番号が割り付けられる。
【0052】
『入力パラメータ』とは、プログラムブロック本体の実行のための入力パラメータのことであり、入力データを含んでいる。『出力パラメータ』とは、プログラムブロック本体の実行結果としての出力パラメータのことであり、実行完了フラグと出力データとから構成されている。
【0053】
『プログラムブロック本体』とは、ラダープログラムなどのプログラムブロックの起動時に実行されるプログラムコード列のことである。
【0054】
そして、図25中のプログラムブロック(PB10)の具体的に示したものが図23である。上述のように、プログラムブロックに関するデータ情報が格納されている。図示されているように、プログラムブロック識別子としてPB10、入力パラメータとしてDM0000、出力パラメータとして実行完了フラグであるFLG0010と出力データとしてのDM0001が格納されている。そして、図24は、このプログラムブロックPB10をサポートツール2で表示したときの表示画面イメージである。サポートツールでの表示は、A1欄〜A4欄にわかれていて、A1欄にプログラムブロック識別情報が表示され、A2欄に入力パラメータ、A3欄に出力パラメータが表示される。A4欄はプログラムブロック本体で、図示のようにラダー言語で書かれたラダープログラムが表示される。
【0055】
プログラムブロックには所定の命令語により作成されたプログラムが格納され、プログラムブロックの実行時、各命令語が順次読み出され、その命令コードに従った演算や処理が行われる。各命令には論理演算や算術演算などの命令が想定されるが、本実施例ではそれらの命令の他に、以下の仕様の命令を新たに用意する。
オペコード:RCALLPB
オペランド1:プログラマブルコントローラ識別コード
オペランド2:プログラムブロックID
オペランド3:実行パラメータ
オペランド4:実行結果格納先
【0056】
オペコードは、『プログラムブロック起動命令』であることを示す識別子となっている。オペランド1は、起動対象のプログラムブロックが格納されているプログラマブルコントローラの識別子である。オペランド2は、起動対象のプログラムブロックの識別子である。オペランド3は、起動対象のプログラムブロックの実行に必要となるパラメータデータである。オペランド4は、起動対象のプログラムブロックの実行結果を格納する自プログラマブルコントローラのメモリアドレスである。
【0057】
命令動作は、オペランド1,2に指定されたプログラムブロックに対して、オペランド3に指定された実行パラメータを渡し、プログラムブロックがそれを元に実行した結果を受け取り、実行結果をオペランド4に指定されたメモリアドレスに格納するものとする。
【0058】
上記のオペランド3およびオペランド4は、プログラムブロックの仕様によって、1つであるとは限らない。プログラムブロックの識別子として、そのシステムを構成する全プログラマブルコントローラに対してユニークな識別子を持つことで、オペランド1を省略する仕様も考えられる。
【0059】
図2に戻って、パラメータメモリ104は各種の演算や処理のための各種パラメータを記憶するためのメモリである。このパラメータメモリ104には、本発明に関連して、『コントローラ別ネットワークアドレス情報』が格納される。
【0060】
『コントローラ別ネットワークアドレス情報』の内容を示す説明図が図28に示されている。この情報は、ネットワーク接続されたプログラマブルコントローラのネットワーク上のアドレスを記憶するためのものであり、『コントローラID』と『ネットワークアドレス』とを対にして記憶したものである。ここで、『コントローラID』とはネットワーク接続されているプログラマブルコントローラの識別子のことであり、『ネットワークアドレス』とは各プログラマブルコントローラのネットワーク上のアドレスのことである。
【0061】
図2に戻って、ワークメモリ105は、各種の演算や処理を行うに際して、データの一時記憶領域として使用されるメモリであり、RAMで構成されるのが通例である。このワークメモリ105には、各プログラムブロックの運転状態を示す『プログラムブロックステータス情報』に加えて、本発明に関連する『ネットワーク処理依頼項目情報』が格納される。
【0062】
『プログラムブロックステータス情報』の一例を示す説明図が図27に示されている。同図に示されるように、この例にあっては、各プログラムブロックのID(識別子)とそのプログラムブロックの現在のステータス(『起動』又は『停止』)と処理完了待ちフラグ(『ON』,『OFF』)とを互いに関連付けて記憶することにより、『プログラムブロックステータス情報』が構成されている。この『プログラムブロックステータス情報』は、プログラム運転処理の初回時に例えば全ての又はいくつかのプログラムブロックが『起動』として、ワークメモリ105に生成記憶され、プログラム運転処理においては、このエリアの内容に従って各プログラムブロックの運転が実行又は停止に制御される。各ステータスの状態(運転又は停止)は、例えばユーザプログラム中にて使用可能な『プログラムブロック起動命令』や『プログラムブロック停止命令』等により変更することができる。従って、この『プログラムブロックステータス情報』を参照することにより、各プログラムブロックの運転状態が起動か停止かを判別することができる。
【0063】
『ネットワーク処理依頼項目情報』の格納例を示す説明図が図29に示されている。『ネットワーク処理依頼項目情報』はコントローラ毎に、コマンド送信用とコマンド/レスポンス受信用とがそれぞれ1個づつ設けられる。この情報は、プログラマブルコントローラにおいて、各処理からネットワーク処理に対して、コマンドの発行を依頼するために用いられる情報であり、『相手先アドレス』と『コマンド』と『パラメータ』とを対にして記憶したものである。
【0064】
ここで、『相手先アドレス』のレコードは、そのデータ構造は同じであるが、コマンド送信用とコマンド/レスポンス受信用とでは意味が異なる。コマンド送信用ではコマンドを発行する相手のネットワークアドレスのことであり、『コマンド/レスポンス受信用』では発信元のネットワークアドレスのことである。『パラメータ』とはコマンドコードに対するパラメータのことである。ワークメモリ105上の本情報格納エリアには、依頼側処理で依頼する内容が記憶される。このエリアへの依頼の追加記憶はエリア先頭から空き領域を検索することで、すでに依頼されている内容の最後に追加する形となる。ネットワーク処理側でエリアの先頭より順次処理し、送信用エリアではコマンド発行が完了すると、コマンド/レスポンス受信用エリアではレスポンスの受領もしくはコマンドの処理が完了すると、その依頼内容を消去し、残りの内容をエリア先頭側に一段つめる。
【0065】
図2に戻って、I/Oメモリ106には、入力データエリアと出力データエリアとカウンタやタイマ等のデータエリア、等が設けられており、先に説明したように、それらのエリアの内容は、ユーザプログラム実行に際して参照並びに必要により書き替えられる。
【0066】
なお、通信インタフェース107並びにI/Oインタフェース108は、通信手段3並びに入出力装置4との接続に際する通信に関する処理を実行するためのものである。この通信インタフェース107がプログラマブルコントローラにとってのいわゆる通信部に相当し、後述する『メッセージサービス』により、サポートツール2や他のプログラマブルコントローラ又は上位パソコン等との通信を行う。
【0067】
次に、入出力装置4は、外部のセンサやスイッチからの信号を取り込むための入力端子と、外部のリレー、モータ、アクチュエータ等を駆動するための信号を出力するための出力端子とを備えている。そして、入力端子から取り込まれた信号は入力データとしてI/Oメモリ106に書き込まれ、出力端子から送出されるべき信号は出力データとしてI/Oメモリ106から読み出される。
【0068】
次に、サポートツール全体のハードウェア構成を示すブロック図が図3に示されている。同図に示されるように、このサポートツール2は、演算装置210と、入力装置220と、表示装置230とを含んでいる。
【0069】
中央処理装置211は、サポートツールを構成するパソコンの演算処理部に相当するもので、サポートツール全体を統括制御するものである。
【0070】
メモリ空間212には、バラメータデータエリア212Aと、ユーザプログラムデータエリア212Bと、サポートツールプログラムモジュール212Cとが含まれている。
【0071】
パラメータデータエリア212Aには、先に図29を参照して説明した『ネットワーク処理依頼項目情報』等の各種のパラメータデータが格納される。
【0072】
ユーザプログラムデータエリア212Bには、プログラマブルコントローラに転送されるべき、或いはプログラマブルコントローラから転送されてきた、『アプリケーションプログラムデータテーブル』等が格納される。
【0073】
サポートツールプログラムモジュール212Cには、中央処理装置211が実行する、本サポートツールの各種の機能を実行するためのプログラムが格納される。
【0074】
表示装置用メモリ213は、表示装置230に出力される情報が格納されるメモリであり、このメモリに対する情報の書き込みは中央処理装置211により行われる。
【0075】
内部バス214は、中央処理装置211がメモリ空間212、入力装置220、表示装置用メモリ213にアクセスするためのインタフェースとして機能するものである。また、通信用インタフェース215は、プログラマブルコントローラとの通信を行うためのインタフェースとして機能するものである。
【0076】
入力装置220は、ユーザの要求をインタフェース(GUIを含む)を介して取得する装置であり、この例では、パソコンに備えられたキーボードや各種のポインティングデバイス等で構成されている。
【0077】
表示装置230は、表示装置用メモリ213の状態をインタフェースを介して表示する装置であり、この例では、パソコンに備えられたCRT表示器やLCD等がこれに相当する。
【0078】
先に説明したように、この実施形態のPLCシステムにあっては、ネットワーク上では、『メッセージサービス』によりPLC同志で情報交換を行い、それを使用して相手先に各種の要求を発行する。『メッセージサービス』は、サポートツールとプログラマブルコントローラとの間の情報交換にも使用される。『メッセージサービス』にて使用される各メッセージは、該当するコマンドに相手先のネットワークアドレスを付加することにより構成され、この相手先ネットワークアドレスにより受信先が特定される。
【0079】
次に、この実施形態において、ネットワーク上で使用されるメッセージサービスコマンドの具体例を順次に説明する。この実施形態においては、『プログラムブロック起動&結果取得コマンド』、『プログラムブロック起動コマンド』、『プログラムブロック実行結果取得コマンド』、『プログラムブロック書込コマンド』、『プログラムブロック解除コマンド』からなる5個のメッセージコマンドが新たに定義される。
【0080】
(1)『プログラムブロック起動&結果取得コマンド』
送信コマンドのパラメータは、『相手プログラマブルコントローラのプログラムブロックID』と『実行パラメータデータ』となる。受信レスポンスの内容は、『正常終了コードと実行結果データ』となるが、何らかの理由で処理が正常に完了しなかった場合は、『エラー終了』となる。
【0081】
(2)『プログラムブロック起動コマンド』
送信コマンドのパラメータは、『相手コントローラのプログラムブロックID』と『実行パラメータデータ』となる。受信レスポンスの内容は、『正常終了コード』となるが、何らかの理由で正常に完了しなかった場合は、『エラー終了』となる。
【0082】
(3)『プログラムブロック実行結果取得コマンド』
送信コマンドのパラメータは、『相手コントローラのプログラムブロックID』となる。受信レスポンスの内容は、『正常終了コード』と『実行結果データ』又は『エラー終了』(実行未完その他)となる。
【0083】
(4)『プログラムブロック書込コマンド』
送信コマンドのパラメータは、『プログラムブロックID番号』と『プログラムブロックデータ』となる。受信レスポンスの内容は、『正常終了コード』となるが、何らかの理由で処理が正常に完了しなかった場合は、『エラー終了コード』となる。
【0084】
(5)『プログラムブロック削除コマンド』
送信コマンドのパラメータは、『プログラムブロックID番号』となる。受信レスポンスの内容は、『正常終了コード』となるが、何らかの理由で処理が正常に完了しなかった場合は、『エラー終了コード』となる。
【0085】
次に、以上説明したハードウェア並びにネットワーク上の『メッセージサービス』を前提としつつ、プログラマブルコントローラ1並びにサポートツール2のシステムプログラムの内容を図4以下のフローチャート並びに画面説明図等を参照して説明することにより、本発明システムの機能を明らかにする。
【0086】
プログラマブルコントローラ1に組み込まれたシステムプログラムの全体を概略的に示すゼネラルフローチャートが図4に示されている。同図において、電源投入により処理が開始されると、まず電源ON初期処理(ステップ401)が実行されて、各種のフラグやレジスタ類の初期設定などが実行される。
【0087】
その後、図示しないプログラム運転状態フラグの内容が繰り返し参照され(ステップ403)、その状態が『運転可能』とされるまでの間(ステップ403NO)、共通処理(ステップ402)、I/Oリフレッシュ処理(ステップ405)、ネットワーク処理つまり、周辺サービス処理(ステップ406)が順次繰り返し実行され、その間においてはプログラム運転処理(ステップ404)はスキップされる。
【0088】
この状態において、プログラム運転状態フラグの状態が『運転可能』になると、その前の共通処理(ステップ402)の実行を経て、ステップ403が「YES」となり、プログラム運転実行(ステップ404)、I/Oリフレッシュ処理(ステップ405)、ネットワーク処理(ステップ406)が実行されるようになる。
【0089】
尚、共通処理(ステップ402)とは、プログラムが運転中であるか停止中であるかに拘わらず必要とされる処理であり、I/Oリフレッシュ処理(ステップ405)とは、先に説明したように、I/Oインタフェース108及び入出力装置4を介して外部から取り込まれた入力データにて、I/Oメモリ106の該当する入力データの内容を更新すると共に、I/Oメモリの出力データをI/Oインタフェース108及び入出力装置4を介して、外部の該当する出力端子へと送出する処理である。
【0090】
次に、プログラム運転処理の詳細を示すフローチャートが図5に示されている。同図において、処理が開始されると、まず実行の初回に限り(ステップ501YES)、プログラムブロックステータス情報を新たに生成する処理が実行される(ステップ502)。先に説明したように、この処理(ステップ502)では、図27に示されるプログラムブロックステータス情報の内容は、例えば全ての又はいくつかのプログラムブロックに関して例えば『起動』に設定される。
【0091】
その後、プログラムブロックステータス情報の先頭レコードから(ステップ503)、末尾のレコードに至るまで(ステップ515NO)、順次レコードの読み出しが行われる(ステップ514)。
【0092】
読み出されたレコードのステータスが『起動』に設定されている場合に限り(ステップ504YES)、入力パラメータの読み込みを行った後(ステップ507)、該当するプログラムブロック内の命令が順次読み出されて実行され(ステップ508,509)、最終命令の読み出し実行が完了するまでの間(ステップ510NO)、次のプログラムブロックに関して、同様な命令の読み出し並びに実行処理が進められる(ステップ508,509)。なお、これら読み出し処理の初回に限り(ステップ505YES)、実行完了フラグがOFFとされる(ステップ506)。一方、最終命令が読み出された場合には(ステップ510YES)、実行完了であることを条件として(ステップ511YES)、実行完了フラグがONとされる(ステップ512)。
【0093】
その後、実行結果を出力パラメータに書き出す処理(ステップ513)並びにプログラムブロックステータス情報の次のレコードを読み出す処理(ステップ514)を実行し、以上の処理が残レコードなしと確認されるまで(ステップ515YES)、繰り返される。
【0094】
このようにして、プログラムブロックステータス情報の最後のレコードに関し、命令の読み出し並びに実行処理が完了すると、プログラム運転処理の一巡実行が全て完了する。
【0095】
以上の処理から明らかなように、例えばユーザプログラム中において、『プログラムブロック起動命令』及び『プログラムブロック停止命令』を適切に使用して、各プログラムブロックのステータスを『起動』または『停止』に設定することにより、ユーザプログラムの実行と連動させて、各プログラムブロックの運転を起動又は停止させ、すなわち選択的にプログラムブロックを実行させることができるのである。
【0096】
次に、ネットワーク処理の詳細を示すフローチャートが図6に示されている。このネットワーク処理では、サポートツール又は他のプログラマブルコントローラからのコマンドの受信状態、他処理からのネットワーク処理依頼の状態等に応じて、(1)サポートツール及び他プログラマブルコントローラからのコマンドに従った処理、(2)他処理からのネットワーク処理依頼内容に従ったコマンド発行処理、(3)発行したコマンドに対するレスポンスに従った処理、の3通りの処理が行われる。コマンドやレスポンスの受信自体は割込処理にて行われ、ワークメモリ105上の一時記憶エリアに記憶されているものとする。
【0097】
図6において処理が開始されると、受信コマンド又はレスポンスが存在するか否かの判定が行われる(ステップ600,601)。受信コマンド又はレスポンスが存在するか否かの判断は、コマンド/レスポンス受信用のネットワーク処理依頼項目記憶エリアに『ネットワーク処理依頼項目情報』のデータが存在するか否かで判別される。このとき受信コマンド又はレスポンスが存在すれば(ステップ601YES)、その受信コマンド又はレスポンスを解析し(ステップ602)、各コマンド及びレスポンス別の処理へと移行する(ステップ603−1,603−2〜603−n)。
【0098】
先に説明したように、この実施の形態においては、『プログラムブロック起動&結果取得コマンド』、『プログラムブロック起動コマンド』、『プログラムブロック実行結果取得コマンド』、『プログラムブロック書込コマンド』、及び『プログラムブロック削除コマンド』からなる5種類のコマンドが新たに用意されている。
【0099】
『プログラムブロック起動&結果取得コマンド』の対応処理の詳細を示すフローチャート(その1及びその2)が図7及び図8に示されている。
【0100】
図7において処理が開始されると、プログラムブロック処理完了待ちの状態となる。なお、『プログラムブロック処理完了待ち』の判断は、図27に示される情報テーブルの該当プログラムブロックの『処理完了待ち』のレコードによって判断するものとする。ONで処理の完了を待っている状態、OFFで処理完了を待っていない状態を表す。
【0101】
ここで、プログラムブロック処理完了待ちではないと判断されると(ステップ701NO)、ステップ702では、コマンドパラメータの『相手コントローラのプログラムブロックID』を読み込む。
【0102】
ステップ703では、『アプリケーションプログラムデータ』のデータ領域情報より指定のプログラムブロックデータ位置を取得し、その位置からデータを読み出す。
【0103】
続くステップ704では、指定プログラムブロックがないか否かの判定が行われる。ここで指定プログラムブロックなしとの判断が行われると(ステップ704YES)、図8に進んで、コマンド発行元に対しエラーレスポンスを返信して(ステップ807)、処理が終了する。
【0104】
これに対して、指定プログラムブロックありとの判断が行われると(ステップ704NO)、ステップ705では、プログラムブロックの入力パラメータに、コマンドパラメータの『実行パラメータデータ』をセットする。
【0105】
ステップ706では、『プログラムブロックステータス情報』(図27参照)の該当プログラムブロックIDのステータスを起動に変更する。
【0106】
続くステップ707では、プログラムブロック処理完了待ちを記憶し、その後一旦処理を中断する。
【0107】
一方、ステップ701において、プログラムブロック処理完了待ちであると判定されると(ステップ701YES)、図8へ進んで、該当プログラムブロックの実行完了フラグがONであるか否かが判定される(ステップ801)。なお、この判定に先立ち、コマンドパラメータの相手コントローラのプログラムブロックIDを読み込み(ステップ800−1)、『アプリケーションプログラムデータ』のデータ領域情報より指定のプログラムブロックデータを取得し(ステップ800−2)、出力パラメータの実行完了フラグの状態を参照する(ステップ800−3)。すなわち、『(該当プログラムブロックの)実行完了フラグ』は、個々のプログラムブロック出力パラメータに定義されており、ONで実行が完了している状態、OFFで実行が未完もしくは実行されていない状態を表す。ここで、該当プログラムブロックの実行完了フラグがONでないと判断されると(ステップ801NO)、図7へ戻って、一旦処理を中断する。
【0108】
これに対して、ステップ801において、該当プログラムブロックの実行完了フラグONとの判断が行われると(ステップ801YES)、続くステップ802においては、該当プログラムブロックの出力パラメータデータを読み出し、コマンドのレスポンスデータ『実行結果データ』としてセットする。
【0109】
ステップ803では、該当プログラムブロックの実行完了フラグをOFFさせる。ステップ804では、『プログラムブロックステータス情報』の該当プログラムブロックIDのステータスを停止に変更する。ステップ805では、プログラムブロック処理完了待ちを解除する。
【0110】
ステップ806では、正常レスポンスと共にデータを返信し、処理を終了する。
【0111】
以上説明した、図7及び図8の処理が実行される結果、『プログラムブロック起動&結果取得コマンド』が受信されると、指定のプログラムブロックが自動的に起動され、『実行結果データ』がコマンド発行元へと返送される。
【0112】
次に、『プログラムブロック起動コマンド』の対応処理の詳細を示すフローチャートが図9に示されている。同図において処理が開始されると、ステップ901では、コマンドパラメータの『相手コントローラのプログラムブロックID』を読み込む。
【0113】
ステップ902では、『アプリケーションプログラムデータ』のデータ領域情報より指定のプログラムブロックデータ位置を取得し、その位置からデータを読み出す。
【0114】
続くステップ903では、指定プログラムブロックがないか否かの判定が行われる。ここで、指定プログラムブロックなしと判断されると(ステップ903YES)、コマンド発行元に対してエラーレスポンスを返信し(ステップ907)、処理を終了する。
【0115】
これに対して、ステップ903において、指定プログラムブロックありと判断されると(ステップ903NO)、ステップ904では、プログラムブロックの入力パラメータに、コマンドパラメータの『実行パラメータデータ』をセットする。ステップ905では、『プログラムブロックステータス情報』の該当プログラムブロックIDのステータスを起動に変更する。最後に、ステップ906では、正常レスポンスと共にデータを返信し、処理を終了する。
【0116】
以上説明した図9のプログラムが実行される結果、『プログラムブロック起動コマンド』が受信されると、指定のプログラムブロックが自動的に起動され、プログラムが起動された旨のレスポンスがコマンド発行元に対して返送される。
【0117】
次に、『プログラムブロック実行結果取得コマンド』の対応処理の詳細を示すフローチャートが図10に示されている。同図において処理が開始されると、ステップ1001では、コマンドパラメータの『相手コントローラのプログラムブロックID』を読み込む。
【0118】
ステップ1002では、『アプリケーションプログラムデータ』のデータ領域情報より指定のプログラムブロックデータ位置を取得し、その位置化からデータを読み出す。
【0119】
その後、ステップ1003では、指定プログラムブロックなしか否かが判定される。ここで、指定プログラムブロックなしと判断されると(ステップ1003YES)、コマンド発行元に対してエラーレスポンスを返信し(ステップ1010)、処理を終了する。
【0120】
これに対して、ステップ1003において、指定プログラムブロックありと判断されると(ステップ1003NO)、さらに、ステップ1004においては、該当プログラムブロックの実行完了フラグがONであるか否かの判定が行われる。なお、この判定に先立ち、『アプリケーションプログラムデータ』のデータ領域情報より指定のプログラムブロックデータを取得し、出力パラメータの実行完了フラグの状態を参照する(ステップ1003−1)。ここで該当プログラムブロックの実行完了フラグがONでないと判断されると(ステップ1004NO)、コマンド発行元に対し『実行未完』エラーレスポンスを返信して(ステップ1009)、処理を終了する。
【0121】
一方、ステップ1004において、該当プログラムブロックの実行完了フラグがONであると判断されると(ステップ1004YES)、ステップ1005においては、該当プログラムブロックの出力パラメータデータを読み出し、コマンドのレスポンスデータ『実行結果データ』としてセットする。
【0122】
ステップ1006においては、該当プログラムブロックの実行完了フラグをOFFする。ステップ1007においては、『プログラムブロックステータス情報』の該当プログラムブロックIDのステータスを停止に変更する。最後に、ステップ1008においては、正常レスポンスと共にデータを返信し、全ての処理を終了する。
【0123】
以上説明した図10のプログラムが実行される結果、『プログラムブロック実行結果取得コマンド』が受信されると、プログラムブロック実行結果に相当するデータがコマンド発行元に対して返信される。
【0124】
次に、『プログラムブロック書込コマンド』の対応処理の詳細を示すフローチャートが図11に示されている。同図において処理が開始されると、ステップ1101では、『アプリケーションプログラムデータ』のデータ領域情報よりプログラムブロックの挿入位置を取得する。
【0125】
続くステップ1102では、コマンドパラメータに指定されたプログラムブロックIDが既に存在するか否かの判定が行われる。ここで、コマンドパラメータに指定されたプログラムブロックIDが既に存在するものと判断されれば(ステップ1102YES)、コマンド発行元に対してエラーレスポンスを返信し(ステップ1107)、処理を終了する。
【0126】
これに対して、ステップ1102において、コマンドパラメータに指定されたプログラムブロックIDが未だ存在しないと判断されると(ステップ1102NO)、ステップ1103においては、上記挿入位置に、コマンドパラメータに指定されたプログラムブロックIDとして、同じくコマンドパラメータのプログラムブロックデータを書き込む。
【0127】
ステップ1104では、『アプリケーションプログラムデータ』のデータ領域情報を更新する。ステップ1105では、『プログラムブロックステータス情報』に書き込んだ該当プログラムブロックIDを追加し、ステータスを停止に設定変更する。最後に、ステップ1106では、正常レスポンスと共にデータを返信し、処理を終了する。
【0128】
以上説明した図11のプログラムが実行される結果、『プログラムブロック書込コマンド』が受信された場合、コマンドパラメータで指定されたプログラムブロックが『アプリケーションプログラムデータ』に自動的に追加される。
【0129】
次に、『プログラムブロック削除コマンド』の対応処理の詳細を示すフローチャートが図12に示されている。同図において、処理が開始されると、ステップ1201では、『アプリケーションプログラムデータ』のデータ領域情報よりコマンドパラメータに指定されたプログラムブロックの位置を取得する。
【0130】
続くステップ1202では、指定されたプログラムブロックがないか否かの判定が行われる。ここで、指定されたプログラムブロックがないと判断されると(ステップ1202YES)、コマンド発行元に対してエラーレスポンスを返信し(ステップ1207)、処理を終了する。
【0131】
これに対して、ステップ1202において、指定されたプログラムブロックが存在すると判断されると(ステップ1202NO)、ステップ1203では、該当のプログラムブロックデータを削除する。
【0132】
ステップ1204では、『アプリケーションプログラムデータ』のデータ領域情報を更新する。ステップ1205では、『プログラムブロックステータス情報』から削除したプログラムブロックIDのレコードを削除する。最後に、正常レスポンスと共にデータを返信し(ステップ1206)、処理を終了する。
【0133】
以上説明した図12のプログラムが実行される結果、『プログラムブロック削除コマンド』が受信された場合、『アプリケーションプログラムデータ』の指定されたプログラムブロックが自動的に削除される。
【0134】
次に、プログラマブルコントローラ側から発行される『プログラムブロック起動命令』の対応処理の詳細を示すフローチャート(その1及びその2)が図13及び図14に示されている。この処理は、あるコントローラAから別のコントローラB上のプログラムブロックを起動するという流れにおける一連の処理の一部を説明したものである。その一連の流れとは、コントローラAのプログラム運転処理の中で、プログラムブロック起動命令(RCALLPB命令)が実行されることがきっかけとなり、この命令の処理としてそのオペランド情報をもとにコントローラA『ネットワーク処理依頼項目情報』にデータが格納され、それを受けてコントローラAのネットワーク処理でコントローラB宛にコマンドが発行される(図6ステップ606〜608参照)。以下の説明は、このRCALLPB命令でコントローラAが処理する内容を示している。
【0135】
図13において、処理が開始されると、ステップ1301では、コマンド発行中であるか否かの判定が行われる。ここで、コマンド発行中ではないと判断されると(ステップ1301NO)、ステップ1302では、『コントローラ別ネットワークアドレス情報』(図28参照)よりオペランド1のコントローラ識別コードに相当するコントローラのネットワークアドレスを照会する。コマンド発行中であるか否かは、ワークメモリ上に命令毎に記憶領域をもち、そのエリアを参照することにより判断される。
【0136】
ステップ1303では、『ネットワーク処理依頼項目記憶エリア』に上記アドレスとオペランド2〜3のデータをセットする。
【0137】
続くステップ1304では、指定プログラムブロックなしであるか否かの判定が行われる。ここで指定プログラムブロックなしとの判断が行われると(ステップ1304YES)、直ちに処理は終了する。これに対して、ステップ1304において、指定プログラムブロックありとの判断が行われると(ステップ1304NO)、ステップ1305においては、プログラムブロックの入力パラメータに、コマンドパラメータの『実行パラメータデータ』をセットする。続くステップ1306では、コマンド発行中を記憶し、処理を終了する。
【0138】
一方、ステップ1301において、コマンド発行中であると判断されると(ステップ1301YES)、図14に進んで、ステップ1401においては、コマンドに対するレスポンスありか否かの判定が行われる。ここで、コマンドに対するレスポンスなしと判断されると(ステップ1401NO)、図13に戻って直ちに処理は終了する。
【0139】
これに対して、ステップ1401において、コマンドに対するレスポンスありと判断されると(ステップ1401YES)、続くステップ1402においては、エラーレスポンスであるか否かの判定が行われる。ここで、エラーレスポンスであると判断されると(ステップ1402YES)、図13へ戻って処理は終了する。
【0140】
これに対して、ステップ1402においてエラーレスポンスではないと判断されると(ステップ1402NO)、ステップ1403では、レスポンスパラメータより『実行結果データ』をオペランド4に示されるメモリアドレスにセットする。
【0141】
最後に、ステップ1404では、コマンド発行中を解除し、図13に戻って処理は終了する。
【0142】
以上説明した図13及び図14のプログラムが実行される結果、『プログラムブロック起動コマンド』が受信されると、指定されたプログラムブロックが自動的に実行されることとなる。
【0143】
尚、受信コマンドやレスポンスが存在しない場合には(ステップ601NO)、受信コマンド/レスポンス解析処理(ステップ602)及び各コマンド及びレスポンス別の処理(ステップ603−1,603−2〜603−n)はスキップされる。
【0144】
続くステップ604では、ワークメモリ105内のコマンド送信用のネットワーク処理依頼項目記憶エリアから、ネットワーク処理依頼項目情報を読み出す。
【0145】
ネットワーク処理依頼項目情報(ワークエリア内のネットワーク処理依頼項目記憶エリアの内容)の格納例を示す説明図が図29に示されている。同図に示されるように、ネットワーク処理依頼項目情報は、『相手先アドレス』と『コマンド』と『パラメータ』とを互いに関連づけて記憶することで構成されている。図の例では、記憶エリアの先頭には、『相手先アドレス』としてプログラマブルコントローラAが、『コマンド』としてプログラムブロック起動&結果取得が、さらに『パラメータ』としてPB10,Data ABCDがそれぞれ格納されており、2番目以降の領域については(空き)とされている。
【0146】
図6に戻って、続くステップ605では、図29に示されるネットワーク処理依頼項目記憶エリアの内容が参照されて、処理依頼の有無が判定される。ここで処理依頼があれば(ステップ605YES)、先頭の依頼を読み出す処理(ステップ606)、コマンドを生成して送信する処理(ステップ607)、及びネットワーク処理依頼項目記憶エリアを一段つめる処理(ステップ608)が順次実行される。これにより、当該プログラマブルコントローラから他のプログラマブルコントローラあるいはサポートツールなどに対して、ネットワーク処理依頼項目情報で規定される各種のコマンドが発行されることとなる。
【0147】
尚、処理依頼なしと判定された場合には(ステップ605NO)、上述の先頭の依頼を読み出す処理(ステップ606)、コマンドを生成して送信する処理(ステップ607)及びネットワーク処理依頼項目記憶エリアを一段つめる処理(ステップ608)がスキップされる。
【0148】
次に、サポートツールの動作を実現するためのシステムプログラムについて説明する。
【0149】
第1実施例(サポートツールからのプログラムブロック起動とその結果の同時取得作業)におけるサポートツールの動作を実現するためのシステムプログラムの全体構成を示すフローチャート(その1及びその2)が図15及び図16に示されている。
【0150】
図15において処理が開始されると、ステップ1501においては、起動時処理処理が実行されて、各種フラグやレジスタ類の初期設定が行われる。
【0151】
ステップ1502においては、機能選択画面が表示される。この機能選択画面には、選択肢として、『プログラムブロック作成機能』、『プログラムブロック起動/同時結果取得機能』の他、様々な機能が含まれている。
【0152】
ステップ1503においては、それら画面に表示された機能の中で、所望の機能をオペレータは選択する。
【0153】
機能選択処理(ステップ1503)において、『プログラムブロック作成機能』が選択されると(ステップ1504YES)、それに続いて、公知のプログラムブロック作成機能処理(ステップ1505)が実行されて、プログラム作成に必要な各種のサポート機能が実現される。
【0154】
図16に進んで、『プログラムブロック起動/同時結果取得機能』が選択された場合には(ステップ1601YES)、それに続いて、プログラムブロック起動/同時結果取得機能処理が実行される(ステップ1602)。
【0155】
同様にして、様々な機能の選択並びに対応する処理が実行可能となっており、図示しない終了操作が行われると(ステップ1603YES)、公知の終了処理(ステップ1604)を実行して、処理は終了する。
【0156】
次に、第2実施例(サポートツールからのプログラムブロック起動とその結果の別途取得作業)におけるサポートツールの動作を実現するためのシステムプログラムの全体構成を示すフローチャート(その1及びその2)が図17及び図18に示されている。
【0157】
図17において、処理が開始されると、ステップ1701では、起動時初期処理が実行されて、各種フラグやレジスタ類の初期設定が行われる。
【0158】
続くステップ1702では、機能選択画面が表示され、機能選択を待機する状態となる。ここでは、『プログラムブロック作成機能』、『プログラムブロック起動機能』、『プログラムブロック実行結果取得機能』などが選択肢として表示される。
【0159】
ステップ1703においては、それら選択肢の中で、所望のものについて、オペレータは機能選択を行う。
【0160】
ここで、『プログラムブロック作成機能』が選択されると(ステップ1704YES)、公知のプログラムブロック作成機能処理(ステップ1705)が実行される。
【0161】
また、『プログラムブロック起動機能』が選択されると(ステップ1706YES)、本発明と関連するプログラムブロック起動機能処理(ステップ1707)が実行される。
【0162】
図18に進んで、『プログラムブロック実行結果取得機能』が選択されると(ステップ1801YES)、本発明に関連するプログラムブロック実行結果取得機能処理(ステップ1802)が実行される。
【0163】
オペレータが所定の終了操作を行うと(ステップ1803YES)、公知の終了処理(ステップ1804)が実施されて、処理は終了する。
【0164】
次に、第3実施例(サポートツールからのプログラムブロック追加/削除作業)におけるサポートツールの動作を実現するためのシステムプログラムの全体構成を示すフローチャート(その1及びその2)が図19及び図20に示されている。
【0165】
図19において処理が開始されると、ステップ1901においては、起動時初期処理が実施され、各種フラグやレジスタ類の初期設定が行われる。
【0166】
ステップ1902では、機能選択画面が表示され、この画面上には、『プログラムブロック作成機能』、『プログラムブロック送信&実行機能』などが選択肢として表示される。
【0167】
オペレータがそれらの1つの機能を選択すると(ステップ1903)、選択された機能が『プログラムブロック作成機能』であれば(ステップ1904YES)、公知のプログラムブロック作成機能が実行される(ステップ1905)。
【0168】
また選択された機能が、『プログラムブロック送信&実行機能』であれば(ステップ2001YES)、プログラムブロック送信&実行機能(ステップ2002)が実行される。
【0169】
その後、所定の終了操作が行われれば(ステップ2003YES)、終了処理(ステップ2004)を経て、処理は終了する。
【0170】
最後に、以上説明したプログラマブルコントローラ(PLC)並びにサポートツールの動作を利用してオペレータが具体的に行なう作業の実施例を4通りについて説明する。
[実施例1:サポートツールからのプログラムブロック起動と結果の同時取得]
【0171】
(1)プログラマブルコントローラAおよびサポートツールからなるシステムを構成する(図1のシステム構成1参照)。
【0172】
(2)プログラマブルコントローラAにはアプリケーションプログラムとして、図21(a)のように分割されたプログラムブロック(PB10,PB11,PB12)が格納されている。プログラマブルコントローラAに記憶されているアプリケーションプログラムデータの内容は、図25のような状態である。
【0173】
(3)プログラムブロックのうち、PB10は停止状態で、PB11およびPB12は起動中であるとする。
【0174】
(4)操作者はサポートツールを用いて、『プログラムブロック起動/結果取得』機能により、プログラマブルコントローラAのPB10を指定し、実行のためのパラメータを入力したうえでプログラマブルコントローラに処理を依頼する(図31の画面参照)。尚、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3101はコントローラID表示領域、3102はプログラムブロック表示領域、3103は実行パラメータ表示領域、3104はOK選択ボタン、3105はキャンセル選択ボタンである。このときサポートツールは、プログラマブルコントローラAに対し、ネットワークを介して、『プログラムブロック起動&結果取得』コマンドを発行する(ステップ1503,1601,1602)。
【0175】
(5)プログラマブルコントローラAは上記コマンドを受けて、コマンドに添えられたパラメータを入力パラメータに格納し、PB10を起動状態とする(ステップ705,706)。仮にPB10がプログラマブルコントローラA内に存在しなければエラーレスポンスを返信する(ステップ807)。この処理はネットワーク処理において行われる。
【0176】
(6)プログラマブルコントローラAは以降のプログラム運転処理でPB10に関して、初期実行時のみ実行完了フラグをOFFしたうえで実行を開始する。そして処理が完了した時点で実行完了フラグをONするとともに、実行結果を出力パラメータに格納する。なお、処理の完了には複数の実行サイクルを要する場合も考えられる。
【0177】
(7)プログラマブルコントローラAはネットワーク処理にて、実行完了フラグのONを確認し(ステップ801)、出力パラメータとして保存されたデータを、先の『プログラムブロック起動&結果取得』コマンドのレスポンスとして、サポートツールに返信するとともにPB10を停止状態とする(ステップ802,803,804)。
【0178】
(8)サポートツールは、プログラマブルコントローラAからのレスポンスを受けて、返信されたデータを実行結果として表示する(図32の画面参照)。なお、図において、A1はメインタイトル表示領域、A2は詳細表示領域、3201はOK選択ボタンである。レスポンスがエラーであった場合は、エラー画面を表示する(図33の画面参照)。なお、図において、A1はメインタイトル表示領域、A2は詳細表示領域、3301はOK選択ボタンである。
[実施例2:サポートツールからのプログラムブロック起動と結果の別途取得]
【0179】
(1)プログラマブルコントローラAおよびサポートツールからなるシステムを構成する(図1のシステム構成1参照)。
【0180】
(2)プログラマブルコントローラAにはアプリケーションプログラムとして、図21(a)のように分割されたプログラムブロック(PB10,PB11,PB12)が格納されている。プログラマブルコントローラAに記憶されているアプリケーションプログラムデータは図25のような状態である。
【0181】
(3)プログラムブロックのうち、PB10は停止状態で、PB11およびPB12は起動中であるとする。
【0182】
(4)操作者はサポートツールを用いて、『プログラムブロック起動』機能により、プログラマブルコントローラAのPB10を指定し、実行のためのパラメータを入力したうえでプログラマブルコントローラに処理を依頼する(図34の画面参照)。なお、図において、A1はメインタイトル表示領域、A2は詳細表示領域、3401はコントローラID表示領域、3402はプログラムブロックID表示領域、3403は実行パラメータ表示領域、3404はOK選択ボタン、3405はキャンセル選択ボタンである。このときサポートツールはプログラマブルコントローラAに対しネットワークを介して、『プログラムブロック起動』コマンドを発行する(ステップ1703,1706,1707)。
【0183】
(5)プログラマブルコントローラAは上記コマンドを受けて、コマンドに添えられたパラメータを入力パラメータに格納しPB10を起動状態とする(ステップ904,905)。この処理はネットワーク処理において行われ、上記処理が完了した時点で正常終了のレスポンスをサポートツールに返信する(ステップ906)。仮にPB10がプログラマブルコントローラA内に存在しなければエラーレスポンスを返信する(ステップ907)。
【0184】
(6)プログラマブルコントローラAは以降のプログラム運転処理でPB10に関して、初回実行時のみ実行完了フラグをOFFしたうえで実行を開始する。そして処理が完了した時点で実行完了フラグをONするとともに、実行結果を出力パラメータに格納する。なお、処理の完了には複数の実行サイクルを要する場合も考えられる。
【0185】
(7)プログラマブルコントローラA側で正常にPB10が起動されたことを示すレスポンスが戻れば、サポートツールは実行の成功を表示し、結果取得の実行の要否を操作者に尋ねる(図35の画面参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3501はOK選択ボタン、3502はキャンセル選択ボタンである。操作者は続けて結果取得を実行しても、ここで一旦ツールの機能を終了し、別途結果を取得するために『プログラムブロック実行結果取得』機能を使っても構わない。仮にエラーレスポンスが返った場合は、画面にエラーを表示する(図36の画面参照)。なお、なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3601はOK選択ボタン、3502はキャンセル選択ボタンである(ステップ1703,1801,1802)。
【0186】
(8)続けて結果取得を実行するよう操作者が指示入力した場合は、サポートツールはプログラマブルコントローラAに対し、PB10をパラメータとして『プログラムブロック実行結果取得』コマンドを発行する。
【0187】
(9)プログラマブルコントローラAは上記コマンドを受けて、PB10の実行完了フラグがONしているか否かを確認する。実行完了フラグがONしている場合は、出力パラメータとして保存されたデータをコマンドのレスポンスとして、サポートツールに返信するとともにPB10を停止状態とする。実行完了フラグがONしていない場合は、コマンドのレスポンスとして『実行未完』のエラーを返信する。
【0188】
(10)サポートツールは、プログラマブルコントローラAからのレスポンスを受けて、返信された結果を表示する(図37の画面参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3701はOK選択ボタンである。仮にエラーレスポンスが返った場合は、画面にエラーを表示し、再実行を促す(図38の画面参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3801はOK選択ボタン、3802はキャンセル選択ボタンである。
【0189】
(11)操作者が指定のプログラムブロックの起動で一旦機能を終了し、改めてプログラムブロックの実行結果を取得するために、『プログラムブロック実行結果取得』機能を使用する場合は、プログラムブロックを改めて指定することになる(図39の画面参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、3901はOK選択ボタン、3902はキャンセル選択ボタンである。サポートツールはプログラマブルコントローラAに対し、PB10をパラメータとして『プログラムブロック実行結果取得』コマンドを発行する(ステップ1703,1801,1802)。
【0190】
(12)プログラマブルコントローラAは上記コマンドを受けて、PB10の実行完了フラグがONしているか否かを確認する。実行完了フラグがONしている場合は、出力パラメータとして保存されたデータをコマンドのレスポンスとして、サポートツールに返信するとともにPB10を停止状態とする(ステップ1005,1006,1007)。実行完了フラグがONしていない場合は、コマンドのレスポンスとして『実行未完』のエラーを返信する(ステップ1009)。
【0191】
(13)サポートツールは、プログラマブルコントローラAからのレスポンスを受けて、返信された結果を表示する(図40参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、4001はOK選択ボタンである。仮にエラーレスポンスが返った場合は、画面にエラーを表示し、再実行を促す(図41の画面参照)。なお、図において、A1はメインタイトル表示領域、A5は詳細表示領域、4101はOK選択ボタン、4202はキャンセル選択ボタンである。
[実施例3:サポートツールからのプログラムブロック追加/削除]
【0192】
(1)プログラマブルコントローラAおよびサポートツールからなるシステムを構成する(図1のシステム構成1参照)。
【0193】
(2)プログラマブルコントローラAには、アプリケーションプログラムとして、図21(a)のように分割されたプログラムブロック(PB10,PB11,PB12)が格納されている。プログラマブルコントローラAに記憶されているアプリケーションプログラムデータは、図25のような状態である。
【0194】
(3)操作者はサポートツールを用いて、予めPB20のプログラムブロックデータを作成しておく。『プログラムブロック送信&実行』機能により、プログラマブルコントローラAに対してPB20を選択し、実行のためのパラメータを入力したうえでプログラマブルコントローラAに処理を依頼する(ステップ1903,2001,2002)。
【0195】
(4)上記の処理によりサポートツールとプログラマブルコントローラAは以下のような処理を行う。
【0196】
(5)サポートツールはプログラマブルコントローラAに対しネットワークを介して、『プログラムブロック書込』コマンドにより、PB20のプログラムブロックデータをプログラマブルコントローラAに送信する。
【0197】
(6)プログラマブルコントローラAは上記のコマンドを受けて、PB20のプログラムブロックデータを所定の場所に格納する(ステップ1103,1104,1105)。つまり、PB20のプログラムブロックデータは図25の状態(PB20なし)から図26のような状態(PB20あり)となり、結果としてアプリケーションプログラムの構成は図21(b)のようになる。このときPB20は停止状態である。この処理はネットワーク処理において行われる。
【0198】
(7)サポートツールはプログラマブルコントローラAからの正常レスポンスを確認した上で、『プログラムブロック起動&結果取得』コマンドをPB20を指定し、実行パラメータデータを添えて発行する。
【0199】
(8)プログラマブルコントローラAは上記コマンドを受けて、コマンドに添えられたパラメータを入力パラメータに格納しPB20を起動状態とする。この処理はネットワーク処理において行われる。
【0200】
(9)プログラマブルコントローラAは以降のプログラム運転処理でPB20に関して、
初回実行時のみ実行完了フラグをOFFしたうえで実行を開始する。そして処理が完了した時点で実行完了フラグをONするとともに、実行結果を出力パラメータに格納する。なお、処理の完了には複数の実行サイクルを要する場合も考えられる。
【0201】
(10)プログラマブルコントローラAはネットワーク処理にて、PB20の実行完了フラグのONを確認し、出力パラメータとして保存されたデータを先の『プログラムブロック起動&結果取得』コマンドのレスポンスとして、サポートツールに返信するとともにPB20を停止状態とする。
【0202】
(11)サポートツールは、プログラマブルコントローラAからのレスポンスを受けて、返信されたデータを『プログラムブロック送信&実行』機能の実行結果として表示するとともに、『プログラムブロック削除』コマンドによりPB20のプログラムデータの削除をプログラマブルコントローラAに発行する。
【0203】
(12)プログラマブルコントローラAは上記コマンドを受けて、アプリケーションプログラムデータよりPB20のデータを削除する。結果として、アプリケーションプログラムの状態は図26のような状態から図25のように戻り、結果としてアプリケーションプログラムの構成も図21(a)のような構成に戻ることになる。
[実施例4:他のプログラマブルコントローラからのプログラム起動と結果の同時取得]
【0204】
(1)プログラマブルコントローラAおよびBからなるシステムを構成する(図1,システム構成2参照)。
【0205】
(2)プログラマブルコントローラAにはアプリケーションプログラムとして図21(a)のように分割されたプログラムブロックが格納されている。プログラマブルコントローラAに記憶されているアプリケーションプログラムデータは、図25のような状態である。
【0206】
(3)プログラマブルコントローラAに格納されているプログラムブロックのうち、PB10は停止状態で、PB11およびPB12は起動中であるとする。
【0207】
(4)プログラマブルコントローラBには、図30のようにプログラマブルコントローラAのプログラムブロックを起動するための『プログラムブロック起動命令』(3001)を含むプログラムブロックが格納されている。『プログラムブロック起動命令コード』(3001a)のオペランド1(3001b)にはプログラマブルコントローラAを表す識別コード、オペランド2(3001c)にはプログラマブルコントローラAに格納されているプログラムブロックであるPB10を表す識別コード、オペランド3(3001d)にはPB10の実行のためのパラメータデータ、オペランド4(3001e)には実行結果を格納するプログラマブルコントローラ上のメモリアドレスがプログラムされている。
【0208】
(5)プログラマブルコントローラBのプログラムブロック実行処理において、上記『プログラムブロック起動命令』が実行されると、プログラマブルコントローラBはその命令処理として、オペランドより必要な情報を抽出し、オペランド1の情報を図28の『プログラマブルコントローラ別ネットワークアドレス情報』に照らし合わせネットワークアドレスに変換し、オペランド2,3の情報と共に、ネットワーク処理依頼項目記憶エリアに図29のように格納する。そして、コマンド発行中であることを記憶して、そのサイクルの命令実行処理を終了して、次命令の実行処理に移行する。
【0209】
(6)プログラマブルコントローラBのネットワーク処理ではネットワーク処理依頼項目記憶エリアの情報に基づいて、プログラマブルコントローラAに対しネットワークを介して、『プログラムブロック起動&結果取得』コマンドを発行する。
【0210】
(7)プログラマブルコントローラAは上記コマンドを受けて、コマンドに添えられたパラメータを入力パラメータに格納しPB10を起動状態とする。この処理はネットワーク処理において行われる。
【0211】
(8)プログラマブルコントローラAは以降のプログラム運転処理でPB10に関して、
初回実行時のみ実行完了フラグをOFFしたうえで実行を開始する。そして処理が完了した時点で実行完了フラグをONするとともに、実行結果を出力パラメータに格納する。なお、処理の完了には複数の実行サイクルを要する場合も考えられる。
【0212】
(9)プログラマブルコントローラAはネットワーク処理にて、実行完了フラグのONを確認し、出力パラメータとして保存されたデータを、先の『プログラムブロック起動&結果取得』コマンドのレスポンスとして、プログラマブルコントローラBに返信するとともにPB10を停止状態とする。
【0213】
(10)プログラマブルコントローラBはネットワーク処理において、プログラマブルコントローラAからのレスポンスを受けるとレスポンスデータを実行結果として記憶する。
【0214】
(11)プログラマブルコントローラBにおいて『プログラムブロック起動命令』が実行されると、コマンド発行中の場合はプログラマブルコントローラAからのレスポンスが返っているかを確認し、レスポンスが返っていなければ次命令の実行処理に移行し、レスポンスが返っていればレスポンスデータをオペランド4に示されたメモリアドレスにコピーし、コマンド発行中であるという状態をクリアする。これにより、以降、プログラマブルコントローラBのアプリケーションプログラムではプログラマブルコントローラAのPB10の実行結果を参照し他の処理に利用可能となる。
【0215】
尚、実施例3に関して、プログラムブロックデータの送信とプログラムブロック起動を別機能として独立させる形態も考えられる。また、実施例4に関して、実施例2のようにプログラムブロック起動と結果取得を別命令に分けて行う形態も考えられる。
【0216】
以上説明した本発明の実施形態によれば、次のような格別の作用効果が期待される。
【0217】
(1)演算処理に必要なデータのサンプリングがプログラムブロック実行側のプログラマブルコントローラで行われるため、ネットワークを介しての都度的なデータをサンプリングの必要が無く、演算処理結果のみを受け取れるため、ネットワークの負荷を軽減することができる。
【0218】
(2)演算処理に必要なデータのサンプリングがプログラムブロック実行側のプログラマブルコントローラで行われるため、ネットワークによるデータ伝送時間に左右されることなく、短い周期でデータをサンプリングできる。
【0219】
(3)外部からの演算処理の依頼に関して、依頼の方法が実行パラメータに集約され、外部から直接的にアドレスを指定してデータを読み書きすることがないため、プログラマブルコントローラ内のデータの割り付けが変更された場合でも、演算処理依頼側のプログラムの修正変更の必要がない。
【0220】
(4)1台のプログラマブルコントローラにおいて、既にプログラムが分割されている場合、1台の処理を複数台のプログラマブルコントローラに分散する際に、分散したいプログラムブロック部分を切り出して、別プログラマブルコントローラに格納したうえで、該当のプログラムブロックを外部から起動するというプログラムロジックを加えるだけで済むため、容易にシステム構成の変更が可能となる。また、逆も同様である。
【0221】
(5)稼働中であるプログラムに、外部から新たなプログラムブロックを追加し、それを実行させ結果を得られ、かつ結果取得後に追加したプログラムブロックをプログラマブルコントローラ上より消去できることで、必要なときに必要な処理のみを追加し、かつそれ以外のときはプログラマブルコントローラのリソースに負担をかけない。例えば、事前に予期しないトラブルが発生した場合のトラブルシュートおよびメンテナンスなどの遠隔地からのプログラマブルコントローラへの操作が可能となる。
【0222】
【発明の効果】
以上の説明で明らかなように、この発明によれば、複数のプログラマブルコントローラにプログラムを分散配置したシステムにおいても、構造的なプログラミング手法の採用を可能とすると共に、ネットワークを介するデータ交換手段を単純かつ間接的にすることにより、機器構成の変更に対してもプログラムの変更の負担を最小限に留めることができる。
【図面の簡単な説明】
【図1】 本発明が適用されるPLCシステムの構成図である。
【図2】 プログラマブルコントローラ全体のハードウェア構成を示すブロック図である。
【図3】 サポートツール全体のハードウェア構成を示すブロック図である。
【図4】 プログラマブルコントローラに組み込まれたシステムプログラムの全体を概略的に示すフローチャートである。
【図5】 プログラム運転処理の詳細を示すフローチャートである。
【図6】 ネットワーク処理の詳細を示すフローチャートである。
【図7】 「プログラムブロック起動&結果取得コマンド」の対応処理の詳細を示すフローチャート(その1)である。
【図8】 「プログラムブロック起動&結果取得コマンド」の対応処理の詳細を示すフローチャート(その2)である。
【図9】 「プログラムブロック起動コマンド」の対応処理の詳細を示すフローチャートである。
【図10】 プログラムブロック実行結果取得コマンド」の対応処理の詳細を示すフローチャートである。
【図11】 「プログラムブロック書込コマンド」の対応処理の詳細を示すフローチャートである。
【図12】 「プログラムブロック削除コマンド」の対応処理の詳細を示すフローチャートである。
【図13】 「プログラムブロック起動命令」の対応処理の詳細を示すフローチャート(その1)である。
【図14】 「プログラムブロック起動命令」の対応処理の詳細を示すフローチャート(その2)である。
【図15】 第1実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その1)である。
【図16】 第1実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その2)である。
【図17】 第2実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その1)である。
【図18】 第2実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その2)である。
【図19】 第3実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その1)である。
【図20】 第3実施例におけるサポートツールの動作を実現するためのシステムブロックの全体構成を示すフローチャート(その2)である。
【図21】 プログラマブルコントローラA内におけるアプリケーションプログラムのブロック構成を概念的に示す説明図である。
【図22】 プログラムブロックの構造を示す説明図である。
【図23】 PB10のプログラムブロックデータを示す説明図である。
【図24】 プログラムブロック(PB10)の情報に関するサポートツールの表示例を示す説明図である。
【図25】 初期状態におけるプログラマブルコントローラAのアプリケーションプログラムデータの内容を示す説明図である。
【図26】 プログラムブロック(PB20)追加後におけるプログラマブルコントローラAのアプリケーションプログラムデータの内容を示す説明図である。
【図27】 プログラムブロックステータス情報の内容を示す説明図である。
【図28】 プログラマブルコントローラ別ネットワークアドレス情報の内容を示す説明図である。
【図29】 ネットワーク処理依頼項目情報の格納例を示す説明図である。
【図30】 プログラマブルコントローラBのプログラムブロック本体の一部に相当するラダー図の表示例を示す説明図である。
【図31】 サポートツールの操作画面例(第1実施例の実行画面)を示す説明図である。
【図32】 サポートツールの操作画面例(第1実施例の結果表示画面)を示す説明図である。
【図33】 サポートツールの操作画面例(第1実施例のエラー表示画面)を示す説明図である。
【図34】 サポートツールの操作画面例(第2実施例の実行画面)を示す説明図である。
【図35】 サポートツールの操作画面例(第2実施例の起動通知&結果取得実行画面)を示す説明図である。
【図36】 サポートツールの操作画面例(第2実施例のエラー表示画面)を示す説明図である。
【図37】 サポートツールの操作画面例(第2実施例の結果取得並びに実行結果表示画面)を示す説明図である。
【図38】 サポートツールの操作画面例(第2実施例の結果取得並びに実行未完表示画面)を示す説明図である。
【図39】 サポートツールの操作画面例(第2実施例の結果取得実行画面)を示す説明図である。
【図40】 サポートツールの操作画面例(第2実施例の実行結果表示画面)を示す説明図である。
【図41】 サポートツールの操作画面例(第2実施例の実行未完表示画面)を示す説明図である。
【図42】 サポートツールの操作画面例(第3実施例の実行画面)を示す説明図である。
【図43】 サポートツールの操作画面例(第3実施例の結果取得画面)を示す説明図である。
【図44】 サポートツールの操作画面例(第3実施例のエラー表示画面)を示す説明図である。
【符号の説明】
1,1A,1B プログラマブルコントローラ
2 サポートツール
3 通信手段(ネットワーク)
4 入出力装置
101 CPU
102 システムプログラムメモリ
103 ユーザプログラムメモリ
104 パラメータメモリ
105 ワークメモリ
106 I/Oメモリ
107 通信インタフェース
108 I/Oインタフェース
210 演算装置
220 入力装置
230 表示装置
211 中央処理装置
212 メモリ空間
212A パラメータデータエリア
212B ユーザプログラムデータエリア
212C サポートツールプログラムモジュール
213 表示装置用メモリ
214 内部メモリ
215 通信インタフェース
A1 メインタイトル表示領域
A2 サブタイトル表示領域
A3 サブタイトル表示領域
A4 詳細表示領域
3001 プログラムブロック操作命令
3001a オペコード
3001b 第1オペランド
3001c 第2オペランド
3001d 第3オペランド
3001e 第4オペランド
3101,3401,4201 コントローラID表示領域
3102,3402,4202 プログラムブロックID表示領域
3103,3403,4203 実行パラメータ表示領域
3104,3201,3301,3404,3501,3601,3701,3802,3902,4001,4101,4204,4301,4401 OK選択ボタン
3105,3405,3502,3801,3901,4102,4205 キャンセル選択ボタン

Claims (7)

  1. ユーザプログラムである1若しくは2以上のプログラムブロックを格納し、かつそれらのプログラムブロックを個別に運転状態と停止状態とに切り換えて選択的に実行するブロック単位実行型プログラマブルコントローラを複数台有し、
    上記ブロック単位実行型プログラマブルコントローラ同士の間において、ネットワークやバスを介してデータのやり取りを行うプログラマブルコントローラ・システムであって、
    前記ブロック単位実行型プログラマブルコントローラには、ユーザプログラムの実行中にプログラムブロック起動命令が解読されたときには当該プログラムブロック起動命令のオペランドで指定される他のブロック単位実行型プログラマブルコントローラのプログラムブロックに対する操作を指示するプログラムブロック操作コマンドを発行するコマンド発行手段が組み込まれており、
    前記他のブロック単位実行型プログラマブルコントローラには、前記ブロック単位実行型プログラマブルコントローラから受け取ったプログラムブロック操作コマンドで指定されたプログラムブロックに対する操作を実行するコマンド対応処理実行手段が組み込まれている、
    ことを特徴とするプログラマブルコントローラ・システム。
  2. ユーザプログラムである1若しくは2以上のプログラムブロックを格納し、かつそれらのプログラムブロックを個別に運転状態と停止状態とに切り換えて選択的に実行するブロック単位実行型プログラマブルコントローラと、
    上記のブロック単位実行型プログラマブルコントローラとの間において、ネットワークやバスを介してデータのやり取りを行うサポートツールと、を有し、
    前記サポートツールは、オペレータによって選択された機能にしたがって、ブロック単位実行型プログラマブルコントローラのプログラムブロックに対する操作を指示するプログラムブロック操作コマンドを発行するコマンド発行手段が組み込まれており、
    ブロック単位実行型プログラマブルコントローラには、他の装置から受け取ったプログラムブロック操作コマンドで指定されたプログラムブロックに対する操作を実行するコマンド対応処理実行手段が組み込まれている、
    ことを特徴とするプログラマブルコントローラ・システム。
  3. プログラムブロック操作コマンドが、プログラムブロックの入力パラメータに、コマンドパラメータの実行パラメータデータをセットして当該プログラムブロックを起動して実行させ、その実行結果である出力パラメータデータを読み出して実行結果としてコマンド発行元へと返すことを指示する内容を有する、請求項1または2のいずれかに記載のプログラマブルコントローラ・システム。
  4. プログラムブロック操作コマンドが、プログラムブロックの入力パラメータに、コマンドパラメータの実行パラメータデータをセットして当該プログラムブロックを起動して実行させることを指示する内容を有する、請求項1または2のいずれかに記載のプログラマブルコントローラ・システム。
  5. プログラムブロック操作コマンドが、プログラムブロックの出力パラメータデータを読み出して実行結果としてコマンド発行元へと返すことを指示する内容を有する、請求項に記載のプログラマブルコントローラ・システム。
  6. プログラムブロック操作コマンドが、コマンドに添えられた特定プログラムブロックを、プログラムブロック格納領域に書き込むことを指示する内容を有する、請求項に記載のプログラマブルコントローラ・システム。
  7. プログラムブロック操作コマンドが、指定されたプログラムブロックをプログラムブロック格納領域から削除することを指示する内容を有する、請求項に記載のプログラマブルコントローラ・システム。
JP2002127472A 2001-04-27 2002-04-26 プログラマブルコントローラ・システム Expired - Fee Related JP3781112B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002127472A JP3781112B2 (ja) 2001-04-27 2002-04-26 プログラマブルコントローラ・システム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2001133454 2001-04-27
JP2001-133454 2001-04-27
JP2002127472A JP3781112B2 (ja) 2001-04-27 2002-04-26 プログラマブルコントローラ・システム

Publications (2)

Publication Number Publication Date
JP2003015709A JP2003015709A (ja) 2003-01-17
JP3781112B2 true JP3781112B2 (ja) 2006-05-31

Family

ID=26614539

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002127472A Expired - Fee Related JP3781112B2 (ja) 2001-04-27 2002-04-26 プログラマブルコントローラ・システム

Country Status (1)

Country Link
JP (1) JP3781112B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428602B2 (en) * 2005-11-29 2008-09-23 International Business Machines Corporation Method for executing initialization code to configure connected devices and executing segments of configuration code from a failed segment
KR101059970B1 (ko) 2008-03-26 2011-08-26 가부시키가이샤후지쿠라 전자부품 실장용 기판 및 그 제조방법과 전자 회로 부품
CN114151121B (zh) * 2021-11-09 2024-02-23 北京天玛智控科技股份有限公司 液压支架控制系统、方法及装置

Also Published As

Publication number Publication date
JP2003015709A (ja) 2003-01-17

Similar Documents

Publication Publication Date Title
JP4462449B2 (ja) 制御システム設定装置
JPWO2002042853A1 (ja) プログラミング装置及びプログラミング方法
JP2006134097A (ja) プログラマブル表示器、表示制御プログラムおよびそのプログラムを記録した記録媒体
JP3456692B2 (ja) データ処理装置
JP3739897B2 (ja) プログラマブルコントローラ
JP3781112B2 (ja) プログラマブルコントローラ・システム
JP2002268730A (ja) フィールドデバイスのメンテナンス装置
JP4102137B2 (ja) 制御プログラム作成支援システム及びその支援方法
JP2000268016A (ja) 分散制御システム並びにその構成要素
US20020198970A1 (en) Programmable controller system
JP4821717B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JP2001014017A (ja) Nc工作機械用プログラム制御装置
JP2004280299A (ja) コントローラ、開発装置及びシステム
JP4186383B2 (ja) プログラマブルコントローラシステム
JP4877257B2 (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JPH0581036A (ja) 計算機ネツトワークシステムのリモートインストール方法
JP2000315104A (ja) Nc工作機械の管理システムおよび管理プログラム
JP2880330B2 (ja) プログラマブルコントローラのプログラミング装置
JP5926584B2 (ja) Plcシステム、そのプログラマブル表示器、作画エディタ装置
JPH07120182B2 (ja) 数値制御システム
JPH11249715A (ja) シーケンスプログラムの自動生成方法とモーションコントローラ
JP7052620B2 (ja) サポート装置およびサポートプログラム
JP3384141B2 (ja) プログラマブルコントローラ並びにプログラマブルコントローラ保守装置
JP2009245194A (ja) プログラマブルコントローラ、プログラマブルコントローラ支援装置、及びプログラマブルコントローラシステム
JPH04209007A (ja) プログラマブルコントローラのユーザプログラムエディットシステム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051128

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060228

R150 Certificate of patent or registration of utility model

Ref document number: 3781112

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090317

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100317

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110317

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120317

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130317

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140317

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees