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

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

Info

Publication number
JP4238964B2
JP4238964B2 JP2001133160A JP2001133160A JP4238964B2 JP 4238964 B2 JP4238964 B2 JP 4238964B2 JP 2001133160 A JP2001133160 A JP 2001133160A JP 2001133160 A JP2001133160 A JP 2001133160A JP 4238964 B2 JP4238964 B2 JP 4238964B2
Authority
JP
Japan
Prior art keywords
security
program
group
program block
setting
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 - Lifetime
Application number
JP2001133160A
Other languages
English (en)
Other versions
JP2002328706A (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 JP2001133160A priority Critical patent/JP4238964B2/ja
Publication of JP2002328706A publication Critical patent/JP2002328706A/ja
Application granted granted Critical
Publication of JP4238964B2 publication Critical patent/JP4238964B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Programmable Controllers (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、ユーザプログラムをプログラムブロック単位で複数格納可能とし
たプログラマブルコントローラ・システムに係り、特に、一群のプログラムブロ
ック毎にパスワード等の鍵を割り当てることにより、プログラム保護のためのセ
キュリティを、プログラムブロックグループ単位で一括設定又は一括解除可能と
したプログラマブルコントローラ・システムに関する。
【0002】
【従来の技術】
プログラマブルコントローラ(PLC)は、入力装置と演算装置と出力装置とをその構成の基本としている。センサやスイッチ等からの信号入力は、入力装置を介して演算装置に取り込まれる。取り込まれた信号入力に基づいて、演算装置に予め格納されているユーザ作成のラダー図プログラム等の制御プログラムが実行される。その実行結果は、出力装置を介して外部のモータやアクチュエータ等に出力される。
【0003】
1台のプログラマブルコントローラにて制御可能な入出力点数は、半導体メモリのコストダウンやマイコンチップの高性能化等と相まって、飛躍的に増加する傾向にある。これに比例して、プログラマブルコントローラのプロクラム容量も増大する傾向にある。また、プログラマブルコントローラを組み込むことで設計される各種機械や製造設備自身の高機能化も、プログラム容量の増大に拍車を掛けている。
【0004】
このような傾向の中で、最近のプログラマブルコントローラにあっては、大容量のプログラムを効率よくかつ品質良く設計するために、或いは再利用やメンテナンス管理の便宜のために、プログラムを分割や階層化したり、ブロック分割したりするための機能が付加されつつある。これに関連して、最近のプログラマブルコントローラにあっては、ブロック分割されたプログラムデータを個別にダウンロードやアップロードしたり、ブロック分割されたプログラムを個別に起動したり、停止したりする機能も付加されつつある。
【0005】
これらの機能を利用すれば、ユーザは、分割ブロック化したプログラムを1台のプログラマブルコントローラにて制御される複数の装置のうちの個々の装置に割り当てたり、装置内の独立性の高い機能ユニット個々と対応させることにより、プログラム設計において装置毎や機能毎の設計を順次一つずつ或いは複数の作業者で分担しつつ行うことが可能となり、これによりプログラム作成における生産性を飛躍的に高めることができる。上述の機能は、プログラマブルコントローラ内におけるプログラムの機能分割をより明確にすることができるので、1台のプログラマブルコントローラで複数の装置を制御しているような場合にも、装置毎にプログラムを分割した形でプログラミング作業が行われている。
【0006】
一方、プログラマブルコントローラを組み込むことで、各種の機械や設備を設計供給しているベンダー間の市場競争が激しくなるに連れて、各ベンダーが保有する技術ノウハウの価値が次第に高まり、その一部であるプログラマブルコントローラに格納されるユーザプログラムの機密性も高まりつつある。しかしながら、プログラム全体を隠蔽してしまうことは、機械や設備のユーザ側におけるメンテナンス性を著しく損ねてしまうため、自ずとベンダーが隠蔽したい部分に限定した形でのセキュリティ機能が必要となる。プログラムの一部に対してアクセスを禁止する機能を有するプログラマブルコントローラも提案されている。
【0007】
【発明が解決しようとする課題】
機械や装置の開発スタイルは多様化し、ベンダー側がその設計の一部を外部に委託したり、複数のベンダーが共同して一つの設備を設計したりするケースも現れている。また、ユーザ側も、その機械や装置に関わる担当者の人数の増加及び組織構成の複雑化により、担当者毎のプログラムに対するアクセス権限を分ける必要性も生じている。すなわち、プログラムに対するセキュリティ面の要望は多様化し、プログラムを複数に分割し、それぞれに異なったアクセス権限を設定できる機能の必要性が高まっている。加えて、先に述べたように、プログラムが装置単位や機能単位等の観点から構造化され、ブロック分割化されている傾向を考慮すると、上述のアクセス権限の設定単位は往々にしてプログラムの構造化単位とも合致していると言う傾向が強い。
【0008】
しかしながら、プログラムのブロック分割数は、場合によっては数百乃至数千にも及ぶため、それら全てにパスワード等の鍵やアクセス権限の設定を行おうとすると、プログラマブルコントローラの利用者側の作業負担が過大になり、パスワード等の鍵の管理も煩雑になり過ぎるといった問題点が生ずる。
【0009】
この発明は、上述の問題点に着目してなされたものであり、その目的とするところは、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみをセキュリティにより的確に保護可能とすることにある。
【0010】
この発明の他の目的とするところは、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみを、必要なセキュリティレベルにより、すなわちセキュリティ厳重度により、的確に保護可能とすることにある。
【0011】
また、この発明の他の目的とするところは、開発形態が複雑になった場合でも、ベンダー個々のノウハウが確実に保護できることにある。
【0012】
また、この発明の他の目的とするところは、ユーザ側の組織構成が複雑化しても、目的に応じて作業者毎のアクセス権限を分けることができることにある。
【0013】
また、この発明の他の目的とするところは、ベンダー側でアクセス制限をかけた形で納入された機械や装置においても、ユーザ側でその権限を守ったままで、新たに独自の権限を設定できることにある。
【0014】
また、この発明の他の目的とするところは、プログラムの構造化単位を利用し、その単位を使ってアクセス権限をかけられるため、プログラム中の該当個所をわかりやすくすることにある。
【0015】
また、この発明の他の目的とするところは、アクセス制限の設定範囲の柔軟性を向上させたままで、アクセス権限に関わる利用者の負担を軽減できることにある。
【0016】
また、この発明の他の目的とするところは、プログラム全体を構造化し設計する際に、動作確認が完了したプログラムブロックを順次で書き替えできない状態のブロック群に加 えられ、かつ、一つのパスワードを記憶しておくだけでその状態を作れるため、アクセス制限の管理負担を最小限に留めたままで、完成したプログラムブロックを誤って書き替えてしまうような作業ミスを容易に防止できることにある。
【0017】
この発明のさらに他の目的乃至作用効果については、以下の明細書の記載を参照することにより、当業者であれば容易に理解されるであろう。
【0018】
【課題を解決するための手段】
本発明のプログラマブルコントローラ・システムは、ユーザプログラムをプログラムブロック単位で複数格納することができ、それら格納されたプログラムブロックを一括して又は選択的に実行可能としたプログラマブルコントローラと、このプログラマブルコントローラをサポートするサポートツールとを一体又は別体に有している。
【0019】
ここで、『一体』とは、一つのハウジング内に、プログラマブルコントローラとサポートツールとが同居している状態を指している。このような一体型のプログラマブルコントローラとしては、比較的に制御点数(入出力点数)の少ない小規模タイプのものが一般的である。また、ここで言うプログラマブルコントローラ並びにサポートツールには、プログラマブルコントローラ機能並びにサポートツール機能をパソコン上でソフトウェア的に実現したものも含んでいる。一方、『別体』とは、プログラマブルコントローラとサポートツールとが別々のハウジングに分けて組み込まれている状態を指している。このような別体型のプログラマブルコントローラとしては、大規模タイプのものが一般的である。通常、このような別体型のプログラマブルコントローラは、サポートツールとして機能する
パソコンと通信手段を介して結ばれる。
【0020】
このシステムには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティ状態設定手段と、セキュリティ選択実行手段と、が具備される。これら4つの手段をプログラマブルコントローラ側又はサポートツール側のいずれに配置すべきかは、対象となるプログラマブルコントローラが一体型か別体型か等の前提条件により異なるであろう。
【0021】
グループ設定情報生成手段は、サポートツール等における所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義するグループ設定情報を生成する。このグループ設定情報を参照することにより、任意のプログラムブロックがどのプログラマブルブロックグループに所属するかを知ることができる。なお、プログラムブロックとそれが属するプログラムブロックグループとの関係は必ずしも一義的である必要はない。すなわち、特定のプログラムブロックが2以上のプログラムブロックグループに属するようにしてもよい。もっとも、その場合でも、個々のプログラムブロックに関するセキュリティ状態については、『運用』か『解除』かに一義的に設定されねばならない。例えば、プログラムブロックが10個(PB1〜PB10)あるときに、プログラムブロックPB1〜PB3はグループA、プログラムブロックPB4〜PB6はグループB、プログラムブロックPB7〜PB10はグループCと言ったように、重複しない3つのプログラムブロックグループに所属させる一方、プログラムブロックPB1〜PB10はそれらとは別のグループDにと言ったように、グループA〜Cを包括するプログラムブロックグループDに所属させるようにしてもよい。この場合、プログラムブロックグループA〜Cの鍵は現場に近い管理者に付与され、プログラムブロックグループDの鍵はより上位の管理者に付与される、と言ったようにして、アクセス権限の階層化を実現することができる。
【0022】
グループ鍵設定情報生成手段は、サポートツール等における所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成する。ここで、『グループ鍵』としては、パスワード、指紋等の様々な識別子を利用することができる。
【0023】
セキュリティ状態設定手段は、入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を、サポートツール等における所定操作に応じて運用又は解除に設定する。つまり、このセキュリティ状態設定手段により、一群のプログラムブロックのセキュリティを一括して設定又は解除することができ、しかもその状態で鍵を掛けて(施錠して)他人によりセキュリティ設定状態が勝手に変更されることを防ぐことができる。ここで、『セキュリティ』とは一般的にはユーザプログラム保護のための様々な防御機能のことを意味し、例えば、プログラムの書き替え禁止、プログラムの読み出し禁止、読み出さ
れたプログラムの表示禁止等を含むことができる。
【0024】
セキュリティ選択実行手段は、プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときにはセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させない。ここで、『プログラムブロックを指定しての』には、ユーザプログラムを個々に直接に指定する場合と、プログラム全体を指定することによりそれに含まれるプログラムブロックを間接的に指定する場合とが含まれるものである。
【0025】
これにより、ブロック単位でセキュリティが個別に設定されていなくとも、各プログラムブロックのユーザプログラムは、そのプログラムブロックが所属するグループ単位で設定されたセキュリティ状態に対応するセキュリティ動作により保護される。
【0026】
そのため、本発明システムによれば、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみをセキュリティにより的確に保護可能となる。
【0027】
本発明の好ましい実施の形態では、プログラマブルコントローラとサポートツールとが通信手段を介して結ばれるようにしてもよい。このとき、プログラマブルコントローラには、グループ設定情報と、セキュリティ設定状態情報と、セキュリティ選択実行手段とが含まれるようにしてもよい。さらに、サポートツールには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティ状態設定手段とが含まれるようにしてもよい。
【0028】
このような構成によれば、グループ鍵を使用して一群のプログラムブロックに対して所定のセキュリティを設定しておけば、サポートツールからプログラマブルコントローラ内の特定プログラムブロックに通信手段を介してアクセスしようとしても、そのプログラムブロックの属するプログラムブロックグループにセキュリティが設定されている限り、そのプログラムブロックのユーザプログラムはセキュリティにより確実に保護される。
【0029】
本発明の好ましい実施の形態では、セキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作であってもよい。
【0030】
このような構成によれば、そのプログラムブロックのユーザプログラムが無断で改変や消去されることを未然に防止することできる。
【0031】
本発明の好ましい実施の形態では、セキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。
【0032】
このような構成によれば、そのプログラムブロックのユーザプログラムに込められたノウハウ等が盗まれることを未然に防止することができる。
【0033】
別の一面から見た本発明のプログラマブルコントローラ・システムは、ユーザプログラムをプログラムブロック単位で複数格納することができ、それら格納されたプログラムブロックを一括して又は選択的に実行可能としたプログラマブルコントローラと、このプログラマブルコントローラをサポートするサポートツールとを一体又は別体に有している。
【0034】
このシステムには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティレベル設定情報生成手段と、セキュリティ状態設定手段と、セキュリティ選択実行手段と、が含まれている。すなわち、このシステムでは、先の発明の構成要件に加えて、『セキュリティレベル設定手段』が新たに追加されている。
【0035】
このセキュリティレベル設定手段では、所定操作に応じて、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報を生成する。すなわち、この発明では、プログラムブロック毎に又はプログラムブロックグループ毎に、セキュリティレベルを異ならせて設定することができる。ここで、『セキュリティレベル』とは、セキュリティの厳重度のことを意味している。換言すれば、この発明では、厳重度の異なる2以上のセキュリティ動作を実行させることができる。
【0036】
一方、セキュリティ選択実行手段の側では、プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従ったセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させない。これにより、各プログラムブロックのセキュリティ動作は、設定されたセキュリティレベルの内容と対応するものとなる。
【0037】
本発明の好ましい実施の形態では、プログラマブルコントローラとサポートツールとが通信手段を介して結ばれるようにしてもよい。このとき、プログラマブルコントローラには、グループ設定情報と、セキュリティレベル設定情報と、セキュリティ設定状態情報と、セキュリティ選択実行手段とが含まれるようにしてもよい。さらに、サポートツールには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティレベル設定情報生成手段と、セキュリティ状態設定手段とが含まれるようにしてもよい。
【0038】
このような構成によれば、グループ鍵を使用して一群のプログラムブロックに対して所定のセキュリティ並びにセキュリティレベルを設定しておけば、サポートツールからプログラマブルコントローラ内の特定プログラムブロックに通信手段を介してアクセスしようとしても、そのプログラムブロックの属するプログラムブロックグループにセキュリティが設定されている限り、そのプログラムブロックのユーザプログラムは指定されたレベルを有するセキュリティにより確実に保護される。
【0039】
そのため、本発明システムによれば、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみを、必要なセキュリティレベルにより、的確に保護可能となる。
【0040】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがったセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作であってもよい。
【0041】
このような構成によれば、セキュリティレベルをそのように設定することにより、そのプログラムブロックのユーザプログラムが無断で改変や消去されることを未然に防止することできる。
【0042】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがったセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。
【0043】
このような構成によれば、セキュリティレベルをそのように設定することにより、そのプログラムブロックのユーザプログラムに込められたノウハウ等が盗まれることを未然に防止することができる。
【0044】
本発明のプログラマブルコントローラのサポートツールは、ユーザプログラムをプログラムブロック単位で複数格納することができるメモリと、このメモリから読み出されたユーザプログラムを表示させることができる表示器と、各種の指令生成やデータ生成に使用することができる操作手段と、を有している。ここで、表示器としては、CRT表示器やLCD表示器等を挙げることができる。また、操作手段としては、キーボードやマウス等を含むGUI等を挙げることができる。
【0045】
このサポートツールには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティ状態設定手段と、セキュリティ選択実行手段と、が設けられる。
【0046】
グループ設定情報生成手段は、操作手段の所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義する。
【0047】
グループ鍵設定情報生成手段は、操作手段の所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成する。
【0048】
セキュリティ状態設定手段は、入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を操作手段の所定操作に応じて運用又は解除に設定する。
【0049】
セキュリティ選択実行手段は、プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときにはセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させない。
【0050】
本発明の好ましい実施の形態では、セキュリティ動作が、プログラムブロックの書き替えを禁止する動作であってもよい。
【0051】
本発明の好ましい実施の形態では、セキュリティ動作が、プログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。このとき、プログラムブロックの読み出しには、読み出されたプログラムブロックの表示又は読み出されたプログラムブロックのプログラマブルコントローラへの転送が含まれていてもよい。
【0052】
本発明のプログラマブルコントローラのサポートツールは、ユーザプログラムをプログラムブロック単位で複数格納することができるメモリと、このメモリから読み出されたユーザプログラムを表示させることができる表示器と、各種の指令生成やデータ生成に使用することができる操作手段と、を有している。
【0053】
このサポートツールには、グループ設定情報生成手段と、グループ鍵設定情報生成手段と、セキュリティレベル設定情報生成手段と、セキュリティ状態設定手段と、セキュリティ選択実行手段と、が含まれている。
【0054】
グループ設定情報生成手段は、操作手段の所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義する。
【0055】
グループ鍵設定情報生成手段は、操作手段の所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成する。
【0056】
セキュリティレベル設定情報生成手段は、操作手段の所定操作に応じて、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報を生成する。
【0057】
セキュリティ状態設定手段は、入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を操作手段の所定操作に応じて運用又は解除に設定する。
【0058】
セキュリティ選択実行手段は、プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従ったセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させない。
【0059】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがったセキュリティ動作が、プログラムブロックの書き替えを禁止する動作であってもよい。
【0060】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがったセキュリティ動作が、プログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。このとき、プログラムブロックの読み出しには、読み出されたプログラムブロックの表示又は読み出されたプログラムブロックのプログラマブルコントローラへの転送が含まれていてもよい。
【0061】
本発明のプログラマブルコントローラは、ユーザプログラムをプログラムブロック単位で複数格納可能で、それら格納されたプログラムブロックを一括して又は選択的に実行可能であり、かつプログラムブロックグループとその構成プログラムブロックとの関係を定義するグループ設定情報を生成するグループ設定情報と、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報と、が外部から書き替え可能に記憶されており、さらにプログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときにはセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させないセキュリティ選択実行手段が含まれている。
【0062】
本発明の好ましい実施の形態では、セキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作であってもよい。
【0063】
本発明の好ましい実施の形態では、セキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。
【0064】
本発明のプログラマブルコントローラは、ユーザプログラムをプログラムブロック単位で複数格納可能で、それら格納されたプログラムブロックを一括して又は選択的に実行可能であり、かつプログラムブロックグループとその構成プログラムブロックとの関係を定義するグループ設定情報と、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報と、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報とが外部から書き替え可能に記憶されており、さらにプログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従った所定のセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときには所定のセキュリティ動作を実行させないセキュリティ選択実行手段と、が含まれている。
【0065】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがった所定のセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作であってもよい。
【0066】
本発明の好ましい実施の形態では、1のセキュリティレベルにしたがった所定のセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。
【0067】
【発明の実施の形態】
以下に、この発明に係るプログラマブルコントローラ・システム(以下、PL
Cシステムとも言う)、プログラマブルコントローラ(以下、PLCとも言う)、並びに、サポートツールの好適な実施の一形態を添付図面を参照しつつ詳細に説明する。
【0068】
本発明が適用されるPLCシステムの全体を概略的に示す説明図が図1に示されている。同図に示されるように、このPLCシステムは、PLC1と、サポートツール2と、ネットワーク4とを有している。
【0069】
PLC1は、図示例では、専用のハードウェアを備えたビルディングブロック型のシステム構成を有するものであり、例えば、主としてユーザプログラム実行機能を司るCPUユニットと、外部機器との信号のやり取りを行う入出力ユニットと、各種のデータ演算等を司る高機能ユニット等をマザーボード上のシステムバスを介して相互に連携して構成されている。加えて、このPLC1のユーザプログラムメモリ(図示せず)には、図2に概念的に示されるように、ユーザプログラムをプログラムブロック単位で複数格納(プログラムブロック1〜4)することができ、しかもユーザプログラムを一括して又はプログラムブロック単位にて選択的に実行させることを可能とする機能が組み込まれている。なお、図では簡略して4個しか示されていないが、実際のPLCの場合、プログラムブロックの数は数百から数千にも及ぶ場合がある。
【0070】
なお、本発明の主たる特徴とするところは、図2に点線にて囲んで示すように、1若しくは2以上のプログラムブロック(プログラムブロック1〜4)を一纏めにグループ化(グループ1,2)し、これらのグループ単位にてセキュリティを一括設定又は一括解除できるようにしたことであるが、この点についてはのちに図面を参照しつつ詳細に説明する。
【0071】
サポートツール2は、図示例では、パソコンにサポートツール用ソフトを組み込んでなるシステム構成を有するものである。ここでは、パソコンの画像表示装置がそのままサポートツールのプログラム表示用の表示器を構成することとなり、またキーボードやマウス等がそのままサポートツールの操作手段を構成することとなり、さらにパソコンのメモリがユーザプログラム保存用のメモリを構成することとなる。一般的に、サポートツール用ソフトには、ユーザプログラムの作成や編集をサポートする機能、作成や編集されたユーザプログラムをPLC側へと転送し、PLCのユーザプログラムメモリを全体単位又はプログラムブロック単位で書き替える機能、PLCのユーザプログラムメモリからユーザプログラムをブロック単位又はプログラム全体単位で読み出してメモリに保存し、サポートツールの表示画面に表示させる機能等が組み込まれている。
【0072】
なお、通信手段を構成するネットワーク4においては、所定のプロトコルを使用したシリアル通信が行われる。
【0073】
次に、プログラマブルコントローラ全体のハードウェア構成を示すブロック図が図3に示されている。なお、図において、プログラマブルコントローラ1として示されているものは、所謂ビルディングブロック型PLCのCPUユニットに相当するものであり、また入出力装置3として示されているものは、同PLCシステムのI/Oユニットに相当するものである。
【0074】
同図に示されるように、このプログラマブルコントローラ1は、CPU101と、システムプログラムメモリ102と、ユーザプログラムメモリ103と、パラメータメモリ104と、ワークメモリ105と、I/Oメモリ106と、I/Oインタフェース107と、通信インタフェース108とを含んでいる。
【0075】
CPU101は、マイクロプロセッサや専用周辺ハード等を主体として構成されており、システムプログラムメモリ102に格納されてシステムプログラムに従って、プログラマブルコントローラとしての基本的な幾つかの機能を実現するように仕組まれている。
【0076】
これらの基本的な機能としては、当業者にはよく知られているように、I/Oリフレッシュ処理、ユーザプログラム実行処理、各種の周辺サービス処理等を挙げることができる。
【0077】
I/Oリフレッシュ処理では、I/Oインタフェース107及び入出力装置3を介して外部から取り込まれた入力データにて、I/Oメモリ106の該当する入力データの内容を更新すると共に、I/Oメモリの出力データをI/Oインタフェース107及び入出力装置3を介して、外部の該当する出力端子へ送出する処理が実行される。
【0078】
ユーザプログラム実行処理では、ユーザプログラムメモリ103からユーザプログラムを構成する命令語を順に読み出しつつ、I/Oメモリを参照して演算に必要な入出力データの内容を求め、これに基づいて指定された命令を実行してその実行結果でI/Oメモリ106の出力データ、カウント値、タイマ時間等の内容を書き替える処理を実行する。
【0079】
周辺サービス処理では、通信インタフェース108、ネットワーク4を介してサポートツール2との通信を行ったり、図示しないリモートI/Oや上位パソコンとの通信を行うと言った様々な周辺サービス処理を実行する。本発明と関連するプログラムブロック単位やプログラム全体単位でのユーザプログラム転送動作(ユーザプログラムメモリからの読み出し動作、ユーザプログラムメモリに対する書き込み動作等)、さらには、『グループ設定情報』や『セキュリティ情報』の転送動作についても、この周辺サービス処理にて実行されることとなる。
【0080】
システムプログラムメモリ102は、CPU101にて実現されるべき各種の機能に対応するシステムプログラムをそれぞれ格納するものであり、基本的にはROMで構成されている。
【0081】
ユーザプログラムメモリ103には、例えばマシンベンダー等により作成された、或いはユーザ自身により作成又は修正されたユーザプログラム(アプリケーションプログラムとも言う)が、先に図2を参照して説明したように、プログラムブロック単位にて格納されている。ここで、ユーザプログラム全体としてのプログラムブロックの数は、場合によっては、数百乃至数千にも及ぶ場合が知られている。ユーザプログラムメモリとしては、例えば、フラッシュメモリやバッテリバックアップされたRAM等が使用される。
【0082】
アプリケーションプログラムデータの一例を示す説明図が図32に示されている。同図に示されるように、この例の場合にあっては、先頭のデータ領域情報に続けて、各プログラムブロック1〜5を格納することにより、アプリケーションプログラムデータが構成されている。データ領域情報は、アプリケーションプログラムデータのデータ構造を示し、プログラムブロック毎の格納場所を表している。各プログラムブロックは例えばラダー図言語などにより作成されたユーザプログラムが格納されている。従って、先頭のデータ領域情報を参照することにより、特定のプログラムブロックを選択的に実行したり、読み出したり、書き替えたりすることが可能となされている。なお、プログラムブロックの数に応じて、データ領域の容量も増減する。
【0083】
図3に戻ってパラメータメモリ104には、本発明に関連する『グループ設定情報』、『セキュリティ情報』等のほか、各種のパラメータが格納される。
【0084】
『グループ設定情報』の一例を示す説明図が図30に示されている。同図に示されるように、この例にあっては、各プログラムブロックのID(識別子)とそのプログラムブロックが所属するプログラムブロックグループのID(識別子)とを互いに関連付けて記憶することにより、『グループ設定情報』が構成されている。
【0085】
また、図示例の『グループ設定情報』は、図2に示されるアプリケーションプログラムの構造例に対応したものでもある。すなわち、プログラムブロック1とプログラムブロック2とがグループ1に所属しており、プログラムブロック3がグループ2に所属しており、プログラムブロック4はいずれのグループにも所属していない。つまり、グループIDが空白となっていることにより、プログラムブロック4がいずれのグループにも属していないことが記憶されている。そして、この『グループ設定情報』は、プログラマブルコントローラ側とサポートツール側との双方に格納される。
【0086】
従って、この『グループ設定情報』を参照することにより、各プログラムブロックがいずれかのプログラムブロックグループに所属しているか、又その場合にはどのプログラムブロックグループに所属しているかを知ることができる。
【0087】
『セキュリティ情報(グループ鍵設定情報、セキュリティ設定状態情報、及び、セキュリティレベル設定情報を含む)』の一例を示す説明図が図31に示されている。同図に示されるように、この例にあっては、プログラムブロックグループのID(識別子)とその鍵となるパスワードとを互いに関連付けて記憶することにより、『グループ鍵設定情報』が構成される。
【0088】
また、プログラムブロックグループのID(識別子)とそのグループのセキュリティ種別(セキュリティレベル)とを互いに関連付けて記憶することにより、『セキュリティレベル設定情報』が構成される。
【0089】
さらに、プログラムブロックグループのID(識別子)とそのグループに関連付けて何らかのセキュリティ種別を記憶するか、或いはなにも記憶せずに空白とするかにより、『セキュリティ設定状態情報』が構成される。
【0090】
すなわち、この『セキュリティ情報』には、本発明の『グループ鍵設定情報』、『セキュリティレベル設定情報』、及び『セキュリティ設定状態情報』が含まれている。この『セキュリティ情報』は、プログラマブルコントローラ側とサポートツール側との双方に格納される。
【0091】
従って、この『セキュリティ情報』を参照することにより、なんらかのパスワードが与えられた場合に、それがいずれかのプログラムブロックグループのパスワードに該当するか、或いはどのグループのパスワードに相当するかを知ることができる。
【0092】
さらに、何らかのプログラムブロックが指定された場合に、『グループ設定情報』から割り出した該当グループに、セキュリティ種別が記憶されているか、或いは空白とされているかにより、そのプログラムブロックのセキュリティが『運用状態』か『解除状態』かを判別することができる。
【0093】
なお、この例では、セキュリティ種別(セキュリティレベル)としては、『読み出し禁止』と『書き込み禁止』との2種類が用意されているが、これら以外にも、書き込みや読み出しに回数制限を設けて、例えば『初回以外は書き込み禁止』、『3回以上読み出し禁止』等の様々な種別を設けることができる。
【0094】
図3に戻って、ワークメモリ105は、各種の演算や処理を行うに際して、データの一時記憶領域として使用されるメモリであり、RAMで構成されるのが通例である。このワークメモリ105には、『プログラムブロックステータス情報』が格納される。
【0095】
『プログラムブロックステータス情報』の一例を示す説明図が図33に示されている。同図に示されるように、この例にあっては、各プログラムブロックのID(識別子)とそのプログラムブロックの現在のステータス(『起動』又は『停止』)とを互いに関連付けて記憶することにより、『プログラムブロックステータス情報』が構成されている。この『プログラムブロックステータス情報』は、プログラム運転処理の初回時に例えば全ての又は幾つかのプログラムブロックが『起動』として、ワークメモリに生成記憶され、プログラム運転処理においては、このエリアの内容に従って各プログラムブロックの運転が実行又は停止される。各ステータスの状態(運転又は停止)は、例えばユーザプログラム中にて使用可能な『グループ起動命令』や『グループ停止命令』等により変更される。従って、この『プログラムブロックステータス情報』を参照することにより、各プログラムブロックの運転状態が起動か停止かを判別することができる。
【0096】
I/Oメモリ106には、入力データエリアと出力データエリアとカウンタやタイマ等のデータエリア、等が設けられており、先に説明したように、それらのエリアの内容は、ユーザプログラム実行に際して参照並びに必要により書き替えられる。
【0097】
なお、I/Oインタフェース107並びに通信インタフェース108は、入出力装置3並びにネットワーク4との接続に際する処理を実行するためのものである。この通信インタフェース108を介して、後述する『メッセージサービス』により、後述するサポートツール2や他のプログラマブルコントローラ又は上位パソコン等との通信が可能となる。
【0098】
入出力装置3は、外部のセンサやスイッチからの信号を取り込むための入力端子と、外部のリレーやモータ等を駆動するための信号を出力するための出力端子とを備えている。そして、入力端子から取り込まれた信号は入力データとしてI/Oメモリ106に書き込まれ、出力端子から送出されるべき信号は出力データとしてI/Oメモリ106から読み出される。
【0099】
次に、サポートツール全体のハードウェア構成を示すブロック図が図4に示されている。同図に示されるように、このサポートツール2は、演算装置210と、入力装置220と、表示装置230とを含んでいる。
【0100】
演算装置210は、中央処理装置211と、メモリ空間(図示しないRAMやハードディスク等で構成される)212と、表示装置用メモリ213と、バス214と、通信インタフェース215とを含んでいる。
【0101】
中央処理装置211は、サポートツールを構成するパソコンの演算処理部に相当するもので、サポートツール全体を統括制御するものである。
【0102】
メモリ空間212には、バラメータデータエリア212Aと、ユーザプログラムデータエリア212Bと、サポートツールプログラムモジュール212Cとが含まれている。
【0103】
パラメータデータエリア212Aには、先に説明した『グループ設定情報』、『セキュリティ情報』等の各種のパラメータデータが格納される。
【0104】
ユーザプログラムデータエリア212Bには、プログラマブルコントローラに転送されるべき、或いはプログラマブルコントローラから転送されてきた、『アプリケーションプログラムデータテーブル』(図32参照)や『プログラムブロックパラメータテーブル』(図30、図31)等が格納される。
【0105】
サポートツールプログラムモジュール212Cには、中央処理装置211が実行する、本サポートツールの各種の機能を実行するためのプログラムが格納される。
【0106】
表示装置用メモリ213は、表示装置230に出力される情報が格納されるメモリであり、このメモリに対する情報の書き込みは中央処理装置211により行われる。
【0107】
バス214は、中央処理装置211がメモリ空間212、入力装置220、表示装置用メモリ213にアクセスするためのインタフェースとして機能するものである。また、通信用インタフェース215は、プログラマブルコントローラとの通信を行うためのインタフェースとして機能するものである。
【0108】
入力装置220は、ユーザの要求をインタフェース(GUIを含む)を介して取得する装置であり、この例では、パソコンに備えられたキーボードや各種のポインティングデバイス等で構成されている。
【0109】
表示装置230は、表示装置用メモリ213の状態をインタフェースを介して表示する装置であり、この例では、パソコンに備えられたCRT表示器やLCD等がこれに相当する。
【0110】
先に説明したように、この実施形態のPLCシステムにあっては、ネットワーク上では、『メッセージサービス』により情報交換を行い、それを使用して相手先に各種の要求を発行する。『メッセージサービス』は、サポートツールからプログラマブルコントローラへの要求にも使用される。『メッセージサービス』にて使用される各メッセージは、該当するコマンドに相手先のネットワークアドレスを付加することにより構成され、この相手先ネットワークアドレスにより受信先が特定される。
【0111】
次に、この実施形態において、ネットワーク上で使用されるメッセージサービスコマンドの具体例を順次に説明する。この実施形態においては、『プログラム(プログラム全体に関するの意)ダウンロードコマンド』、『プログラム(プログラム全体に関するの意)アップロードコマンド』、『プログラムブロック(プログラムブロックに関するの意)ダウンロードコマンド』、『プログラムブロック(プログラムブロックに関するの意)アップロードコマンド』、『グループ設定情報ダウンロードコマンド』、『セキュリティ情報ダウンロードコマンド』、『セキュリティ設定コマンド』、及び『セキュリティ解除コマンド』からなる8種類のコマンドが用意されている。それらのコマンドの内容をは以下の通である。
(1)『プログラムダウンロードコマンド』
【0112】
送信コマンドのバラメータは、ダウンロードしようとする『プログラムデータ』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了(書き込み禁止中又はその他のエラーコード)』となる。
(2)『プログラムアップロードコマンド』
【0113】
送信コマンドのパラメータは存在しない。受信レスポンスの内容は、『正常終了』とアップロードした『プログラムデータ』、又は『エラー終了(読み出し禁止中又はその他のエラーコード)』となる。
(3)『プログラムブロックダウンロードコマンド』
【0114】
送信コマンドのパラメータは、ダウンロードしようとする『プログラムブロックID』とダウンロードしようとする『プログラムブロックデータ』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了(書き込み禁止中又はその他のエラーコード)』となる。
(4)『プログラムブロックアップロードコマンド』
【0115】
送信コマンドのパラメータは、アップロードしようとする『プログラムブロックID』となる。受信レスポンスの内容は、『正常終了』と『プログラムブロックデータ』又は『エラー終了(読み出し禁止中又はその他のエラーコード)』となる。
(5)『グループ設定情報ダウンロードコマンド』
【0116】
送信コマンドのパラメータは、ダウンロードしようとする『グループ設定情報』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了(セキュリティ設定中又はその他のエラーコード)』となる。
(6)『セキュリティ情報ダウンロードコマンド』
【0117】
送信コマンドのパラメータは、ダウンロードしようとする『セキュリティ情報』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了(セキュリティ設定中又はその他のエラーコード)』となる。
(7)『セキュリティ設定コマンド』
【0118】
送信コマンドのパラメータは、セキュリティを設定しようとする『グループID』と『セキュリティ種別(セキュリティレベル)』と『パスワードコード(鍵)』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了』となる。
(8)『セキュリティ解除コマンド』
【0119】
送信コマンドのパラメータは、セキュリティを解除しようとする『グループID』と『パスワードコード(鍵)』となる。受信レスポンスの内容は、『正常終了』又は『エラー終了』となる。
【0120】
次に、以上説明したハードウェア並びにネットワーク上の『メッセージサービス』を前提としつつ、プログラマブルコントローラ1並びにサポートツール2のシステムプログラムの内容を図5以下のフローチャート並びに画面説明図等を参照して説明することにより、本発明システムの要部であるグループ単位でのセキュリティ『一括設定機能』又は『一括解除機能』を明らかにする。
【0121】
プログラマブルコントローラ1に組み込まれたシステムプログラムの全体を概略的に示すゼネラルフローチャートが図5に示されている。同図において、電源投入により処理が開始されると、まず電源ON初期処理(ステップ501)が実行されて、各種のフラグやレジスタ類の初期設定などが実行される。
【0122】
その後、図示しないプログラム運転状態フラグの内容が繰り返し参照され(ステップ503)、その状態が『運転可能』とされるまでの間(ステップ503NO)、共通処理(ステップ502)、I/Oリフレッシュ処理(ステップ505)、ネットワーク処理(ステップ506)が順次繰り返し実行され、その間においてはプログラム運転処理(ステップ504)はスキップされる。
【0123】
この状態において、プログラム運転状態フラグの状態が『運転可能』になると(ステップ503YES)、共通処理(ステップ502)、I/Oリフレッシュ処理(ステップ505)、ネットワーク処理(ステップ506)に加えて、プログラム運転処理(ステップ504)も実行されるようになる。
【0124】
尚、共通処理(ステップ502)とは、プログラムが運転中であるか停止中であるかに拘わらず必要とされる処理であり、I/Oリフレッシュ処理(ステップ505)とは、先に説明したように、I/Oインタフェース107及び入出力装置3を介して外部から取り込まれた入力データにて、I/Oメモリ106の該当する入力データの内容を更新すると共に、I/Oメモリの出力データをI/Oインタフェース107及び入出力装置3を介して、外部の該当する出力端子へと送出する処理である。
【0125】
次に、プログラム運転処理の詳細を示すフローチャートが図6に示されている。同図において、処理が開始されると、まず実行の初回に限り(ステップ601YES)、プログラムブロックステータス情報を新たに生成する処理が実行される(ステップ602)。先に説明したように、この処理(ステップ602)では、図33に示されるプログラムブロックステータス情報の内容は、全てのプログラムブロックに関して『起動』に設定される。
【0126】
その後、プログラムブロックステータス情報の先頭レコードから(ステップ603)、末尾のレコードに至るまで(ステップ609NO)、順次レコードの読み出しが行われる(ステップ608)。
【0127】
読み出されたレコードのステータスが『起動』に設定されている場合に限り(ステップ604YES)、該当するプログラムブロック内の命令が順次読み出されて実行され(ステップ605,606)、最終命令の読み出し実行が完了すると(ステップ607NO)、次のプログラムブロックに関して(ステップ608)、同様な命令の読み出し並びに実行処理が進められる(ステップ605,606)。
【0128】
このようにして、プログラムブロックステータス情報の最後のレコードに関し、命令の読み出し並びに実行処理が完了すると(ステップ605,606,607YES,608,609YES)、プログラム運転処理の一巡実行が完了する。
【0129】
以上の処理から明らかなように、ユーザプログラム中において、『プログラムブロック起動命令』及び『プログラムブロック停止命令』を適切に使用して、各プログラムブロックのステータスを『起動』または『停止』に設定することにより、ユーザプログラムの実行と連動させて、各プログラムブロックの運転を起動又は停止させ、すなわち選択的にプログラムブロックを実行させることができるのである。
【0130】
次に、ネットワーク処理の詳細を示すフローチャートが図7に示されている。同図において、処理が開始されると、受信コマンドの有無が判定される(ステップ701)。尚、コマンドの受信自体は割込処理にて行われ、ワークメモリ105上の一時記憶エリアに記憶されているものと想定する。
【0131】
受信コマンドの待機中に(ステップ701NO)、受信コマンドありが判定されると(ステップ701YES)、その受信コマンドは解析され(ステップ702)、その解析結果に応じて、各コマンド別の処理が実行されることとなる(ステップ703−1,703−2〜703−n)。
【0132】
先に説明したように、この実施の形態においては、『プログラムダウンロードコマンド』、『プログラムアップロードコマンド』、『プログラムブロックダウンロードコマンド』、『プログラムブロックアップロードコマンド』、『グループ設定情報ダウンロードコマンド』、『セキュリティ情報ダウンロードコマンド』、『セキュリティ設定コマンド』、及び『セキュリティ解除コマンド』からなる8種類のコマンドが用意されている。
【0133】
『プログラムダウンロードコマンド』の対応処理の詳細を示すフローチャートが図8に示されている。同図において処理が開始されると、『プログラムダウンロードコマンド』はユーザプログラム全体を一括して書き替えるコマンドであるが、書き替え対象となるユーザプログラムの全部又は一部に『書き込み禁止』が設定されていた場合は、その操作は受け付けられない。そのため、図31に示される『セキュリティ情報』の設定状況の確認が行われる(ステップ801)。
【0134】
ここで、『セキュリティ情報』のいずれかに『書き込み禁止』が設定されていれば(ステップ802YES)、エラーレスポンス『書き込み禁止中』を返信する処理が実行される(ステップ805)。
【0135】
これに対して、『セキュリティ情報』のいずれにも『書き込み禁止』が設定されていなければ(ステップ802NO)、送信されたプログラムデータを『アプリケーションプログラムデータ』に上書きする処理を実行し(ステップ803)、さらに正常レスポンスを返信する処理(ステップ804)を実行して、処理を終了する。
【0136】
このように、例えば、サポートツール、上位パソコン、あるいは他のプログラマブルコントローラ(PLC)などから、プログラムダウロードコマンドを受信した場合、『セキュリティ情報』(図31参照)のいずれにも『書き込み禁止』が設定されていなかった場合に限り(ステップ802NO)、送信されたプログラムデータは『アプリケーションプログラムデータ』に上書きされて(ステップ803)、正常レスポンスが返信されるのに対し(ステップ804)、『セキュリティ情報』のいずれかに『書き込み禁止』が設定されていた場合には(ステップ802YES)、エラーレスポンス『書き込み禁止中』の返信を行う一方(ステップ805)、『アプリケーションプログラムデータ』の上書き処理は実行されず、アプリケーションプログラムの内容は変更されずに保護される。
【0137】
プログラムアップロードコマンドの対応処理の詳細を示すフローチャートが図9に示されている。同図において処理が開始されると、『プログラムアップロードコマンド』はユーザプログラム全体を一括して読み出すコマンドであるが、読み出し対象となるユーザプログラムの全部又は一部に『読み出し禁止』が設定されていた場合は、その操作は受け付けられない。そのため、図31に示される『セキュリティ情報』の設定状況の確認が行われる(ステップ901)。
【0138】
ここで、『セキュリティ情報』のいずれかに『読み出し禁止』が設定されていれば(ステップ902YES)、エラーレスポンス『読み出し禁止中』がコマンド発行元へと返信されて(ステップ905)、処理は終了する。
【0139】
これに対して、『セキュリティ情報』のいずれにも『読み出し禁止』が設定されていなければ(ステップ902NO)、『アプリケーションプログラムデータ』よりプログラムデータの抽出が行われ(ステップ903)、続いて抽出された『アプリケーションプログラムデータ』は正常レスポンスと共にコマンド発行元へと返信され(ステップ904)、処理は完了する。
【0140】
このように、サポートツール又は他のプログラマブルコントローラ(PLC)などからプログラムアップロードコマンドを受信した場合には、『セキュリティ情報』の設定状況を確認した結果(ステップ901)、『セキュリティ情報』のいずれにも『読み出し禁止』が設定されていなかった場合に限り(ステップ902NO)、『アプリケーションプログラムデータ』よりプログラムデータの抽出が行われ(ステップ903)、正常レスポンスと共にコマンド発行元へと返信されるのに対し(ステップ904)、『セキュリティ情報』のいずれかに『読み出し禁止』が設定されていた場合には(ステップ902YES)、エラーレスポンス『読み出し禁止中』がコマンド発行元へと返信されて、指定された『アプリケーションプログラムデータ』のアップロードは禁止され、これにより技術ノウハウが組み込まれた『アプリケーションプログラムデータ』が無断で盗用される虞を未然に防止することができる。
【0141】
プログラムブロックダウンロードコマンドの対応処理の詳細を示すフローチャートが図10に示されている。同図において、処理が開始されると、コマンドパラメータの『プログラムブロックID』を読み込む処理(ステップ1001)及び図30に示される『グループ設定情報』より指定のプログラムブロックが属するグループを検索する処理(ステップ1002)が実行される。
【0142】
続いて、特定プログラムブロックなし又は属するグループなしの判定が行われ(ステップ1003)、それらが肯定された場合には(ステップ1003YES)、上書き対象となるプログラムブロックが存在しないため、新規に追加されることとなり、送信されたプログラムデータを『アプリケーションプログラムデータ』の所定の位置に書き込み(新規に挿入)(ステップ1005)、正常レスポンスを返信して(ステップ1006)、処理は終了する。
【0143】
これに対して、特定プログラムブロック又は属するグループのいずれかが存在すると(ステップ1003NO)、さらに、図31に示される『セキュリティ情報』の中の該当グループに『書き込み禁止』が設定されているか否かの判定が行われ(ステップ1004)、『書き込み禁止』が設定されている場合には(ステップ1004YES)、同様にしてエラーレスポンス『書き込み禁止中』がコマンド発行元へと返信されて(ステップ1007)、処理が終了する。
【0144】
これに対して、『セキュリティ情報』の中の該当グループに『書き込み禁止』が設定されていなければ(ステップ1004NO)、送信されたプログラムブロックデータを『アプリケーションプログラムデータ』の所定位置に書き込み(ステップ1005)、正常レスポンスを返信して(ステップ1006)、処理は終了する。
【0145】
このように、サポートツール、上位パソコン、他のプログラマブルコントローラ(PLC)などからプログラムブロックダウンロードコマンドを受信した場合には、特定プログラムブロック又は属するグループが存在し(ステップ1003NO)、かつ『セキュリティ情報』の中の該当グループに『書き込み禁止』が設定されていない場合(ステップ1004NO)か、プログラム中に特定プログラムブロックが存在しないか、存在してもそのプログラムブロックが属するグループが存在しない場合(ステップ100YES)、送信されたプログラムブロックデータは『アプリケーションプログラムデータ』の所定位置に返信されるのに対し(ステップ1006)、『セキュリティ情報』の中の該当グループに『書き込み禁止』が設定されている場合には(ステップ1004YES)、コマンド発行元に対してエラーレスポンス『書き込み禁止中』が返信され、送信されたプログラムデータにより『アプリケーションプログラムデータ』が書き替えられることはない。従って、特定のプログラムブロックデータが不用意に書き替えられてしまうといった事態を未然に防止することができる。
【0146】
プログラムブロックアップロードコマンドの対応処理の詳細を示すフローチャートが図11に示されている。同図において、処理が開始されると、コマンドパラメータの『プログラムブロックID』を読み込む処理(ステップ1101)、図30に示される『グループ設定情報』より指定のプログラムブロックが属するグループを検索する処理(ステップ1102)が実行される。
【0147】
続いて、指定プログラムブロックなしの判定が行われ(ステップ1103−1)、それが肯定される場合(ステップ1103−1YES)、コマンド発行元に対してエラーレスポンスの返信が行われ(ステップ1108)、処理は終了する。それが否定される場合(ステップ1103−1NO)、引き続いて、所属グループなしの判定が行われ(ステップ1103−2)、それが肯定される場合(ステップ1103−2YES)、指定のプログラムブロックを『アプリケーションプログラムデータ』より抽出し(ステップ1105)、正常レスポンスと共にデータを返信して(ステップ1106)、処理は終了する。
【0148】
所属グループなしの判定が否定される場合(ステップ1103−2NO)、続いて図31に示される『セキュリティ情報』の中の該当グループに『読み出し禁止』が設定されているかの判定が行われる(ステップ1104)。該当グループに『読み出し禁止』が設定されている場合には(ステップ1104YES)、エラーレスポンス『読み出し禁止中』がコマンド元に対して返信され(ステップ1107)、処理は終了する。
【0149】
これに対して、該当グループに『読み出し禁止』が設定されていない場合には(ステップ1104NO)、指定のプログラムブロックを『アプリケーションプログラムデータ』より抽出し(ステップ1105)、正常レスポンスと共にデータを返信して(ステップ1106)、処理は終了する。
【0150】
このように、サポートツール、上位パソコン、又は他のプログラマブルコントローラ(PLC)からプログラムブロックアップロードコマンドが到来した場合には、指定プログラムブロックが存在し(ステップ1103−1NO)、かつ指定プログラムブロックがいずれのグループにも属さない場合(ステップ1103−2YES)か、指定プログラムブロックが存在し(ステップ1103−1NO)、かつ指定プログラムブロックがいずれかのグループに属し(ステップ1103−2NO)、かつ『セキュリティ情報』の中の該当グループに『読み出し禁止』が設定されていない場合に限り(ステップ1104NO)、指定プログラムブロックを『アプリケーションプログラムデータ』より抽出し(ステップ1105)、正常レスポンスと共に返信する処理が実行されるのに対し(ステップ1106)、指定プログラムブロックが存在しない場合(ステップ1103−1YES)や、又はそれが存在し(ステップ1103−1NO)、そのプログラムブロックがいずれかのグループに属している場合であっても(ステップ1103−2NO)、『セキュリティ情報』の中の該当グループに『読み出し禁止』が設定されている場合には(ステップ1104YES)、コマンド発行元に対しエラーレスポンスが返信されて(ステップ1107,1108)、指定のプログラムブロックがコマンド発行元に対して返信されることはない。そのため、指定されたプログラムブロックが技術ノウハウ等と共に盗用されることを未然に防止することができる。
【0151】
グループ設定情報ダウンロードコマンドの対応処理の詳細を示すフローチャートが図12に示されている。同図において、処理が開始されると、PLC内の『セキュリティ情報』の設定状況を確認する処理を実行した後(ステップ1201)、PLC内『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されていることの判定が行われる(ステップ1202)。
【0152】
ここで、『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されていれば(ステップ1202YES)、エラーレスポンス『セキュリティ設定中』がコマンド発行元へと返信されて(ステップ1205)、処理は終了する。
【0153】
これに対して、PLC内『セキュリティ情報』のいずれにも『読み出し禁止』又は『書き込み禁止』が設定されていなければ(ステップ1202NO)、送信された『グループ設定情報』はPLC内のパラメータメモリの所定場所に上書きされ(ステップ1203)、コマンド発行元に対して正常レスポンスを返信して(ステップ1204)、処理を終了する。
【0154】
このように、サポートツール、上位パソコン又はプログラマブルコントローラ(PLC)などからグループ設定情報ダウンロードコマンドを受信した場合には、PLC内『セキュリティ情報』のいずれにも『読み出し禁止』又は『書き込み禁止』が設定されていない場合に限り(ステップ1202NO)、送信された『グループ設定情報』はPLC内パラメータメモリの所定場所に上書きされて(ステップ1203)、正常レスポンスがコマンド発行元へと返信されるのに対し(ステップ1204)、PLC内『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されている場合には(ステップ1202YES)、エラーレスポンス『セキュリティ設定中』がコマンド発行元へと返信され(ステップ1205)、送信された『グループ設定情報』によりパラメータメモリの上書きが行われることはない。そのため、セキュリティ設定された『グループ設定情報』が不用意に変更されることについても未然に防止することができる。
【0155】
セキュリティ情報ダウンロードコマンドの対応処理の詳細を示すフローチャートが図13に示されている。同図において処理が開始されると、PLC内の『セキュリティ情報』の設定状況を確認した後(ステップ1301)、PLC内『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されていることの判定が行われる(ステップ1302)。
【0156】
ここで、PLC内『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されていれば(ステップ1302YES)、エラーレスポンス『セキュリティ設定中』がコマンド発行元へと返信されて(ステップ1305)、処理は終了する。
【0157】
これに対して、PLC内『セキュリティ情報』のいずれにも『読み出し禁止』及び『書き込み禁止』が設定されていなければ(ステップ1302NO)、送信された『セキュリティ情報』はPLC内パラメータメモリの所定場所に上書きされ(ステップ1303)、正常レスポンスをコマンド発行元へと返信して(ステップ1304)、処理を終了する。
【0158】
このように、サポートツール、上位パソコン又は他のプログラマブルコントローラ(PLC)などからセキュリティ情報ダウンロードコマンドを受信した場合には、PLC内『セキュリティ情報』のいずれにも『読み出し禁止』及び『書き込み禁止』が設定されていない場合に限って(ステップ1302NO)、送信された『セキュリティ情報』はPLC内パラメータメモリの所定場所に上書きされ(ステップ1303)、正常レスポンスがコマンド発行元へと返信されるのに対し(ステップ1304)、PLC内『セキュリティ情報』のいずれかに『読み出し禁止』又は『書き込み禁止』が設定されている場合には(ステップ1302YES)、エラーレスポンス『セキュリティ設定中』がコマンド発行元へと返信されて(ステップ1305)、送信された『セキュリティ情報』によるパラメータメモリの上書きは阻止される。そのため、不用意に『セキュリティ情報』が書き替えられることを未然に防止することができる。
【0159】
セキュリティ設定コマンドの対応処理の詳細を示すフローチャートが図14に示されている。同図において、処理が開始されると、コマンドパラメータの対象グループIDを読み込んだ後(ステップ1401)、セキュリティ情報の中の該当グループにセキュリティが設定されているか否かの判定が行われる(ステップ1402)。
【0160】
ここで、セキュリティ情報の中の該当グループにセキュリティが設定されていれば(ステップ1402YES)、コマンド発行元に対してエラーレスポンスの返信が行われ(ステップ1406)、処理は終了する。
【0161】
これに対して、セキュリティ情報の中の該当グループにセキュリティが設定されていないと判定されれば(ステップ1402NO)、コマンドパラメータの『セキュリティ種別』を、セキュリティ情報の該当グループ所定のレコードに書き込む処理(ステップ1403)、並びに、コマンドパラメータの『パスワード』を、セキュリティ情報の該当グループ所定のレコードに書き込む処理(ステップ1404)を実行した後、正常終了レスポンスをコマンド発行元へと返信して(ステップ1405)、処理を終了する。
【0162】
このように、サポートツール、上位パソコン又は他のプログラマブルコントローラ(PLC)などからセキュリティ設定コマンドを受信した場合には、セキュリティ情報の中の該当グループにセキュリティが設定されていない場合に限り(ステップ1402NO)、コマンドパラメータの『セキュリティ種別』を、セキュリティ情報の該当グループ所定のレコードに書き込む処理(ステップ1403)、並びに、コマンドパラメータの『パスワード』を、セキュリティ情報の該当グループ所定のレコードに書き込む処理(ステップ1404)を実行し、正常終了レスポンスを返信して(ステップ1405)、処理を終了するのに対し、セキュリティ情報の中の該当グループにセキュリティが設定されている場合には(ステップ1402YES)、コマンド発行元に対してエラーレスポンスの返信が行われて(ステップ1406)、『セキュリティ種別』の書き込み、並びに、『パスワード』の書き込みはいずれも行われない。そのため、不用意に、『セキュリティ種別』や『パスワード』が変更される虞を未然に防止することができる。
【0163】
セキュリティ解除コマンドの対応処理の詳細を示すフローチャートが図15に示されている。同図において処理が開始されると、コマンドパラメータの対応グループIDを読み込んだ後(ステップ1501)、セキュリティ情報の中の該当グループにセキュリティが設定されているか否かの判定が行われる(ステップ1502)。
【0164】
ここで、セキュリティ情報の中の該当グループにセキュリティが設定されていなければ(ステップ1502NO)、コマンド発行元に対してエラーレスポンスが返信されて(ステップ1508)、処理は終了する。
【0165】
また、セキュリティ情報の中の該当グループにセキュリティが設定されている場合には(ステップ1502YES)、続いてコマンドパラメータの『パスワード』を、セキュリティ情報の該当グループの『パスワード』と照合した後(ステップ1503)、両者の一致を判定する(ステップ1504)。
【0166】
ここで、両者が不一致であれば(ステップ1504NO)、コマンド発行元に対してエラーレスポンスを返信した後(ステップ1507)、処理を終了する。
【0167】
これに対して、コマンドパラメータの『パスワード』がセキュリティ情報の該当グループの『パスワード』と照合一致した場合には(ステップ1504YES)、セキュリティ情報の該当グループ所定の『セキュリティ種別』、『パスワード』レコードを消去した後(ステップ1505)、コマンド発行元に対して正常レスポンスを返信し(ステップ1506)、処理を終了する。
【0168】
このように、サポートツール、上位パソコン又は他のプログラマブルコントローラ(PLC)などからセキュリティ解除コマンドを受信した場合には、コマンドパラメータの『パスワード』とセキュリティ情報の該当グループの『パスワード』とが照合一致した場合に限り(ステップ1504YES)、セキュリティ情報の該当グループ所定の『セキュリティ種別』及び『パスワード』レコードが消去され(ステップ1505)、コマンド発行元へと正常終了レスポンスを返信して(ステップ1506)、処理が終了するのに対し、セキュリティ情報の中の該当グループにそもそもセキュリティが設定されていなかったり(ステップ1502NO)、あるいはコマンドパラメータの『パスワード』とセキュリティ情報の該当グループの『パスワード』とが不一致の場合には(ステップ1504NO)、エラーレスポンスの返信が行われて(ステップ1507,1508)、セキュリティ情報該当グループ所定の『セキュリティ種別』並びに『パスワード』レコードを消去する処理は行われない。そのため、セキュリティが不用意に解除されることが未然に防止される。
【0169】
次に、サポートツールに組み込まれたシステムプログラムの全体を概略的に示すゼネラルフローチャート(その1及びその2)が図16及び図17に示されている。同図において、処理が開始されると、起動時初期処理(ステップ1601)が実行されて、各種フラグやレジスタ類の初期設定が行われ、その後サポートツールの表示装置230には、機能選択画面(画面1)が表示される(ステップ1602)。
【0170】
画面1(機能選択用)の説明図が図34に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、3401はプログラム編集選択ボタン、3402はグループ設定選択ボタン、3403はセキュリティ設定選択ボタン、3404はプログラム転送選択ボタン、3405はプログラムブロック転送選択ボタンである。
【0171】
このような画面1(機能選択用)によれば、メインタイトル表示領域の『メインメニュー』及びサブタイトル表示領域A2の『機能選択』に基づいて画面の大まかな内容を理解することができ、さらに5個の選択ボタン3401〜3405を選択的にGUIを介して操作することによって、プログラム編集機能、グループ設定機能、セキュリティ設定機能、プログラム転送機能、プログラムブロック転送機能を適宜に選択することができる。
【0172】
図16に戻って、オペレータは画面1を参照することによって、所望の機能の選択を行う(ステップ1603)。
【0173】
ここで、『プログラム編集機能』が選択されると(ステップ1604YES)、当業者に公知なプログラム編集機能処理(ステップ1605)が実行されて、公知の手法により、プログラム編集が可能となる(ステップ1605)。
【0174】
『グループ設定機能』が選択された場合には(ステップ1606YES)、グループ設定機能処理が実行される(ステップ1607)。
【0175】
グループ設定機能を実現するための処理の詳細を示すフローチャート(その1及びその2)が図18及び図19に示されている。
【0176】
図18において、処理が開始されると、グループ設定画面(画面2)の表示が行われる(ステップ1801)。画面2(グループ設定用)の説明図が図35に示されている。図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、3501〜3505はグループID表示領域、3506はOK選択ボタン、3507はキャンセル選択ボタンである。
【0177】
図18に戻って、画面2(グループ設定用)において、プログラムブロック毎にグループIDを入力すると(ステップ1802)、OK選択ボタン3506の操作により、入力されたプログラムブロックとグループIDとの関係は、『グループ設定情報』として記憶され(ステップ1803)、その後、生成された『グループ設定情報』は、プログラマブルコントローラに対して送信され(ステップ1804)、プログラマブルコントローラからのレスポンスを待機する状態となる(ステップ1805NO)。この状態においてコントローラからのレスポンスが到来すれば(ステップ1805YES)、図19へ移って、コントローラから受信したレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ1901)。
【0178】
ここで、正常終了レスポンスと判定されれば(ステップ1901YES)、図43(a)に示されるように、正常終了メッセージが表示されて(ステップ1902)、処理が終了する。
【0179】
これに対して、コントローラから受信したレスポンスが正常終了レスポンスでないと判定されると(ステップ1901NO)、さらにその受信されたレスポンスがエラーレスポンス『セキュリティ設定中』であるか否かの判定が行われる(ステップ1903)。
【0180】
ここで、受信されたレスポンスがエラーレスポンス『セキュリティ設定中』であると判定されると(ステップ1903YES)、『セキュリティ設定中』エラーメッセージの作成が行われ(ステップ1904)、図43(d)に示されるように、『セキュリティエラー設定中』エラーメッセージが表示される(ステップ1906)。
【0181】
さらに、受信されたレスポンスが、エラーレスポンス『セキュリティ設定中』でないと判定されると(ステップ1903NO)、その他のエラーメッセージの作成が行われ(ステップ1905)、画面上に表示される(ステップ1906)こととなる。
【0182】
このように、図18及び図19の処理が実行される結果、グループ設定機能が実現されることとなる。
【0183】
プログラム転送機能を実現するための処理の詳細を示すフローチャート(その1〜その3)が図20〜図22に示されている。
【0184】
図20において処理が開始されると、ダウンロード/アップロード指定画面(画面3)の表示が行われる(ステップ2001)。
【0185】
画面3(ダウンロード/アップロード指定用)の説明図が図36に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、3601はダウンロード選択ボタン、3602はアップロード選択ボタン、3603はキャンセル選択ボタンである。
【0186】
ユーザは、画面3(ダウンロード/アップロード指定用)に基づき、ダウンロードやアップロードの選択を行う(ステップ2002)。
【0187】
ここで、ダウンロードが選択された場合には(ステップ2003YES)、『アプリケーションプログラムデータ』よりプログラムデータの抽出を行い(ステップ2004)、『プログラムダウンロードコマンド』にてデータを送信した後(ステップ2005)、図21へ移って、PLCからのレスポンスを待機する状態となる(ステップ2101)。
【0188】
ここで、PLCからのレスポンスがあれば(ステップ2101レスポンスあり)、さらにそのレスポンスが正常終了レスポンスであるか否かの判定を行う(ステップ2102)。
【0189】
ここで、正常終了レスポンスとの判定が行われれば(ステップ2102YES)、正常終了メッセージを画面に表示して(ステップ2103)、処理を終了する。
【0190】
これに対して、正常終了レスポンスでないと判定されると(ステップ2102NO)、さらに書き込み禁止中であるか否かの判定が行われる(ステップ2104)。
【0191】
ここで、書き込み禁止中と判定されれば(ステップ2104YES)、『書き込み禁止中』エラーメッセージの作成が行われた後(ステップ2105)、図43(c)に示されるように、『書き込み禁止中』エラーメッセージの表示が行われ(ステップ2107)、処理は終了する。
【0192】
また、書き込み禁止中ではないと判定されると(ステップ2104NO)、その他のエラーメッセージの作成が行われた後(ステップ2106)、該当するエラーメッセージの表示が行われて(ステップ2107)、処理は終了する。
【0193】
図20へ戻って、アップロードが選択された場合には(ステップ2003NO)、図22へ移って、『プログラムブロックアップロードコマンド』にて指定のプログラムブロックデータを読み出す処理を実行した後(ステップ2201)、PLCからのレスポンスを待機する状態となる(ステップ2202)。
【0194】
ここで、PLCからのレスポンスが到来すれば(ステップ2202レスポンスあり)、それが正常終了レスポンスであるか否かの判定が行われる(ステップ2203)。
【0195】
ここで、正常終了レスポンスと判定されれば(ステップ2203YES)、受信したプログラムブロックデータを『アプリケーションプログラムデータ』の所定の場所に上書きする処理を実行した後(ステップ2204)、図43(a)に示されるように、正常終了メッセージを表示した後(ステップ2205)、処理を終了する。
【0196】
また、正常終了レスポンスでないと判定されると(ステップ2203NO)、さらに読み出し禁止中であるか否かの判定が行われる(ステップ2206)。
【0197】
ここで、読み出し禁止中であると判定されれば(ステップ2206YES)、『読み出し禁止中』エラーメッセージの作成が行われた後(ステップ2207)、図43(b)に示されるように、『読み出し禁止中』エラーメッセージの表示を行って(ステップ2209)、処理を終了する。
【0198】
さらに、読み出し禁止中でないと判定されると(ステップ2206NO)、その他エラーメッセージの作成を行った後(ステップ2208)、該当するエラーメッセージの表示を行って(ステップ2209)、処理を終了する。
【0199】
このように、図20〜図22の処理が実行される結果、プログラム転送機能が実現される。
【0200】
プログラムブロック転送機能を実現するための処理の詳細を示すフローチャート(その1〜その3)が図23〜図25に示されている。
【0201】
図23において処理が開始されると、まず、ダウンロード/アップロード指定画面(画面3)の表示が行われる(ステップ2301)。
【0202】
画面3(ダウンロード/アップロード指定用)の説明図が図36に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、3601はダウンロード選択ボタン、3602はアップロード選択ボタン、3603はキャンセル選択ボタンである。
【0203】
画面3(ダウンロード/アップロード指定用)において、ユーザはダウンロード又はアップロードの選択を行う(ステップ2302)。
【0204】
ここで、ダウンロードが選択された場合には(ステップ2303YES)、プログラムブロック指定画面(画面4)の表示が行われる(ステップ2304)。
【0205】
画面4(プログラムブロック指定用)の説明図が図37に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、3701はブロック指定用カーソル、3702はOK選択ボタン、3703はキャンセル選択ボタンである。
【0206】
画面4(プログラムブロック指定用)において、ユーザはプログラムブロックの指定を行う(ステップ2305)。
【0207】
すると、『アプリケーションプログラムデータ』より指定されたプログラムブロックのデータが抽出され(ステップ2306)、さらに『プログラムブロックダウンロードコマンド』にてデータの送信が行われ(ステップ2307)、図24へ移って、PLCからのレスポンスを待機する状態となる(ステップ2401)。
【0208】
この状態において、レスポンスが到来すると(ステップ2401レスポンスあり)、そのレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ240)。
【0209】
ここで、PLCから受信したレスポンスが正常終了レスポンスと判定されると(ステップ2402YES)、正常終了メッセージの表示が行われて(ステップ2403)、処理は終了する。
【0210】
また、正常終了レスポンスでないと判定されると(ステップ2402NO)、さらに書き込み禁止エラーレスポンスであるか否かの判定が行われる(ステップ2404)。
【0211】
ここで、書き込み禁止エラーレスポンスであると判定されると(ステップ2404YES)、『書き込み禁止』エラーメッセージの作成が行われた後(ステップ2405)、図43(c)に示されるように、『書き込み禁止』エラーメッセージの表示が行われて(ステップ2407)、処理は終了する。
【0212】
さらに、書き込み禁止エラーレスポンスでもないと判定されると(ステップ2404NO)、その他のエラーメッセージの作成が行われ(ステップ2406)、その後該当するエラーメッセージの表示を行って(ステップ2407)、処理は終了する。
【0213】
図23へ戻って、アップロードが選択されたと判定されると(ステップ2303NO)、図25へ移って、プログラムブロック指定画面(画面4)の表示が行われる(ステップ2501)。
【0214】
画面4(プログラムブロック指定用)の説明図が図37に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、3701はブロック指定用カーソル、3702はOK選択ボタン、3703はキャンセル選択ボタンである。
【0215】
画面4(プログラムブロック指定用)において、ユーザはプログラムブロックの指定を行う(ステップ2502)。
【0216】
すると、『プログラムブロックアップロードコマンド』にて指定のプログラムブロックデータの読み出しが行われ(ステップ2503)、その後PLCからのレスポンスを待機する状態となる(ステップ2504)。
【0217】
ここで、PLCからのレスポンスの到来が判定されると(ステップ2504レスポンスあり)、さらにそのレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ2505)。
【0218】
ここで、正常終了レスポンスであると判定されると(ステップ2505YES)、受信したプログラムブロックデータを『アプリケーションプログラムデータ』の所定の場所に上書きした後(ステップ2506)、図43(a)に示されるように、正常終了メッセージを表示して(ステップ2507)、処理を終了する。
【0219】
また、受信されたレスポンスが正常終了レスポンスでないと判定された場合には(ステップ2505NO)、さらに読み出し禁止エラーレスポンスであるか否かの判定が行われる(ステップ2508)。
【0220】
ここで、読み出し禁止エラーレスポンスであると判定されると(ステップ2508YES)、『読み出し禁止』エラーメッセージの作成が行われ(ステップ2509)、図43(b)に示されるように、『読み出し禁止』エラーメッセージの表示を行った後(ステップ2511)、処理を終了する。
【0221】
さらに、読み出し禁止エラーレスポンスでもないと判定されると(ステップ2508NO)、その他のエラーメッセージの作成を行った後(ステップ2510)、該当するエラーメッセージの表示を行って(ステップ2511)、処理を終了する。
【0222】
このように、図23〜図25の処理が実行される結果、プログラムブロック転送機能が実現される。
【0223】
セキュリティ設定機能を実現するための処理の詳細を示すフローチャート(その1〜その4)が図26〜図29に示されている。図26において処理が開始されると、セキュリティ機能設定、対象選択画面(画面5)の表示が行われる(ステップ2601)。
【0224】
画面5(セキュリティ機能設定、対象選択用)の説明図が図38に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、3801は全体設定ボタン、3802は個別設定ボタン、3803はキャンセル設定ボタンである。
【0225】
画面5(セキュリティ機能設定、対象選択用)において、ユーザは『全体設定』又は『個別設定』のいずれかの機能を選択する(ステップ2602)。
【0226】
ここで、選択された機能が『全体設定』であると判定されると(ステップ2603全体設定)、続いて、全体画面(画面6)の表示が行われる(ステップ2604)。
【0227】
画面6(セキュリティ設定機能・全体対象初期画面)の説明図が図39に示されている。図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、3901及び3902はアクティブ状態の表示ランプ、3903及び3904はパスワード表示領域、3905はOK選択ボタン、3906はキャンセル選択ボタンである。
【0228】
画面6(セキュリティ設定機能・全体対象初期画面)において、ユーザはグループ毎に『セキュリティ種別』及び『パスワード』を入力し(ステップ2605)『OK』を入力する(ステップ2606)。
【0229】
すると、入力された『セキュリティ情報』の保存が行われ(ステップ2607)、さらに『セキュリティ情報』ダウンロードコマンドにより『セキュリティ情報』データの送信が行われ(ステップ2608)、図29へ移って、コントローラからのレスポンスを待機する状態となる(ステップ2901)。
【0230】
この状態において、コントローラからのレスポンスありとの判定が行われると(ステップ2901レスポンスあり)、さらにそのレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ2902)。
【0231】
ここで、正常終了レスポンスであるとの判定が行われれば(ステップ2902YES)、図43(a)に示されるように、正常終了メッセージの表示を行って(ステップ2903)、処理を終了する。
【0232】
これに対して、選択された機能が『個別設定』であると判定されると(ステップ2603個別設定)、図27へ移って、グループ設定・解除選択画面(画面7)の表示が行われる。
【0233】
画面7(セキュリティ設定機能・個別対象初期画面)の説明図が図40に示されている。同図において、A1はメインタイトル表示領域、A3は詳細表示領域、4001はグループID表示領域、4002は設定選択ボタン、4003は解除選択ボタン、4004はキャンセル選択ボタンである。
【0234】
画面7(セキュリティ設定機能・個別対象初期画面)において、ユーザはグループIDの入力(ステップ2702)及び設定/解除入力(ステップ2703)を行う。
【0235】
入力結果が『設定』であると判定されると(ステップ2704設定)、続いて、設定詳細画面(画面8)の表示が行われる(ステップ2705)。
【0236】
画面8(セキュリティ設定機能・個別対象設定詳細)の説明図が図41に示されている。図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、4101はアクティブ状態の表示ランプ、4102はパスワード表示領域、4103は設定選択ボタン、4104はキャンセル選択ボタンである。
【0237】
画面8(セキュリティ設定機能・個別対象設定詳細)において、ユーザは『セキュリティ種別』及び『パスワード』を入力し(ステップ2706)、『設定』を入力する(ステップ2706−1)。
【0238】
すると、入力された『グループID』、『セキュリティ種別』、『パスワード』はパラメータとして『セキュリティ設定コマンド』に付加されて送信される(ステップ2707)。
【0239】
すると、図29に移って、コントローラからのレスポンスを待機する状態となる(ステップ2901)。
【0240】
ここで、コントローラからのレスポンスありと判定されると(ステップ2901レスポンスあり)、そのレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ2902)。
【0241】
ここで、終了正常レスポンスであると判定されれば(ステップ2902YES)、図43(a)に示されるように、正常終了メッセージを表示した後、処理を終了する。これに対して、正常終了レスポンスでないと判定されると(ステップ2902NO)、さらにセキュリティ設定中エラーレスポンスであるか否かの判定が行われる(ステップ2904)。
【0242】
ここで、セキュリティ設定中エラーレスポンスであると判定されると(ステップ2904YES)、『セキュリティ設定中』エラーメッセージの作成が行われた後(ステップ2905)、図43(d)に示されるように、『セキュリティ設定中』エラーメッセージの表示が行われ(ステップ2907)、処理が終了する。
【0243】
さらに、セキュリティ設定中エラーレスポンスでもないと判定されると(ステップ2904NO)、その他のエラーメッセージの作成が行われた後(ステップ2906)、該当するエラーメッセージの表示を行って(ステップ2907)、処理を終了する。
【0244】
一方、図27へ戻って、入力結果が『解除』であると判定されると(ステップ2704解除)、図28へ移って、解除詳細画面(画面9)の表示が行われる(ステップ2801)。
【0245】
画面9(セキュリティ設定機能・個別対象解除詳細)の説明図が図42に示されている。同図において、A1はメインタイトル表示領域、A2はサブタイトル表示領域、A3は詳細表示領域、4201はパスワード表示領域、4202は解除選択ボタン、4203はキャンセル選択ボタンである。
【0246】
画面9(セキュリティ設定機能・個別対象解除詳細)において、ユーザは『パスワード』の入力を行い(ステップ2802)、『解除』を入力する(ステップ2802−1)。
【0247】
すると、入力された『グループID』と『パスワード』をパラメータとして『セキュリティ解除コマンド』を送信する処理が実行され(ステップ2803)、以後コントローラからのレスポンスを待機する状態となる(ステップ2804)。
【0248】
この状態において、レスポンスありとの判定が行われると(ステップ2804レスポンスあり)、さらにそのレスポンスが正常終了レスポンスであるか否かの判定が行われる(ステップ2805)。
【0249】
ここで、正常終了レスポンスであるとの判定が行われると(ステップ2805YES)、図43(a)に示されるように、正常終了メッセージの表示を行った後(ステップ2806)、図29へ移って処理を終了する。
【0250】
これに対して、正常終了レスポンスでないとの判定が行われると(ステップ2805NO)、『パスワードエラー』である旨のエラーメッセージの作成が行われ(ステップ2807)、その後エラーメッセージの表示を行って(ステップ2808)、処理を終了する。
【0251】
このように、図26〜図29の処理が実行される結果、セキュリティ設定機能が実現される。
【0252】
最後に、以上説明したサポートツール並びにプログラマブルコントローラの動作を、オペレータが実際に作業を行う場合の手順に沿って、系統的に説明する。
【0253】
[コントローラ内へと、プログラムデータ、グループ設定情報、セキュリティ情報を格納する作業]
(1) コントローラ(PLC)に各種データが記憶されていない状態で、オペレータが作業を開始するものとする。
【0254】
(2) オペレータは、ブロック分割されたプログラム(プログラムブロック)をサポートツールに記憶させると共に、このプログラムをコントローラ(PLC)にも転送する。
【0255】
(3) オペレータは、サポートツールを使用して、プログラムブロックを設備単位等グループとして組分けし、グループ設定データをサポートツール内に記憶すると共に、コントローラ(PLC)にも転送する。
【0256】
(4) オペレータは、サポートツールを使用して、上記グループ毎にセキュリティ状態を設定し、コントローラ(PLC)へと転送する。
【0257】
(5) これにより、『プログラムデータ』、『グループ設定情報』、及び『セキュリティ情報』がコントローラ内に格納される。
【0258】
[サポートツールによるプログラムデータのダウンロード]
(1) オペレータは、サポートツールを使用して、コントローラ(PLC)に対しプログラムをダウンロードする。
【0259】
(2) ダウンロードの依頼を受けたコントローラは、コントローラ内のプログラムのどこかに対して書き込み禁止が設定されている場合は、ダウンロード依頼を拒否してその理由を返信し、書き込み設定禁止がされていない場合は、プログラムを上書きする。
【0260】
(3) サポートツールは、コントローラからの返信を受けて、正常終了ならばそれをオペレータに示し、書き込み禁止によるエラー終了ならば、オペレータにエラーを示す。
【0261】
[サポートツールによるプログラムのアップロード]
(1) オペレータは、サポートツールを使用してコントローラに対してプログラムをアップロードする。
【0262】
(2) アップロードの依頼を受けたコントローラは、コントローラ内のプログラムのどこかに対して読み出し禁止が設定されている場合は、ダウンロード依頼を拒否してその理由を返信し、読み出し禁止が設定されていない場合は、プログラムデータをコントローラに返信する。
【0263】
(3) コントローラからの返信を受けたサポートツールは正常終了ならばそれをオペレータに示し、読み出し禁止によるエラー終了ならば、オペレータにエラーを示す。
【0264】
[サポートツールによるプログラムブロックのダウンロード]
(1) オペレータは、サポートツールを使用して、サポートツール内のプログラムにより任意のプログラムブロックを指定して、コントローラに対してダウンロードを行う。
【0265】
(2) ダウンロードの依頼を受けたコントローラは、該当のプログラムブロックが既にコントローラ内に存在し、かつ書き込み禁止が設定されているかを調べる。上記条件に当てはまる場合にはダウンロード依頼を拒否しその理由を返信し、当てはまらない場合はプログラムブロックデータをコントロール内に記憶する。
【0266】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示し、書き込み禁止によるエラー終了ならば、オペレータにエラーを示す。
【0267】
[サポートツールによるプログラムブロックのアップロード]
(1) オペレータは、サポートツールを使用して、プログラムブロックを指定して、コントローラに対してアップロードを依頼する。
【0268】
(2) アップロードの依頼を受けたコントローラは、該当のプログラムブロックがコントローラ内に存在しないか、また存在しかつ読み出し禁止が設定されているかを調べる。上記条件に当てはまる場合は、アップロード依頼を拒否しその理由を返信し、当てはまらない場合はプログラムブロックデータをサポートツールに返信する。
【0269】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示すと共にデータをサポートツール内に記憶し、エラー終了ならばオペレータにエラーを示す。
【0270】
[サポートツールによるグループ設定情報のダウンロード]
(1) オペレータは、サポートツールを使用して、グループ設定を変更し、コントローラにダウンロードを行う。
【0271】
(2) ダウンロードの依頼を受けたコントローラは、コントローラ内のプログラムのどこかに対して読み出し禁止または書き込み禁止が設定されている場合はダウンロード依頼を拒否しその理由を返信し、設定されていなければグループ設定情報を上書きする。
【0272】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示し、読み出し/書き込み禁止によるエラー終了ならば、オペレータにエラーを示す。
【0273】
[サポートツールによるセキュリティ設定情報のダウンロード]
(1) オペレータは、サポートツールを使用して、セキュリティ設定を変更し、コントローラにダウンロードを行う。
【0274】
(2) ダウンロードの依頼を受けたコントローラは、コントローラ内のプログラムのどこかに対して読み出し禁止又は書き込み禁止が設定されている場合はダウンロード依頼を拒否してその理由を返信し、設定されていなければグループ設定情報を上書きする。
【0275】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示し、読み出し/書き込み禁止によるエラー終了ならば、オペレータにエラーを示す。
【0276】
[サポートツールによるセキュリティの個別設定]
(1) オペレータは、サポートツールを使用して、任意のプログラムブロックを指定し、セキュリティ設定を変更し、コントローラにダウンロードを行う。
【0277】
(2) ダウンロードの依頼を受けたコントローラは、コントローラ内の該当のプログラムブロックに対して読み出し禁止又は書き込み禁止が設定されている場合はダウンロード依頼を拒否しその理由を返信し、設定されていなければ該当のプログラムブロックのセキュリティ設定情報を上書きする。
【0278】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示し、読み出し/書き込み禁止によるエラー終了ならば、オペレータにエラーを示す。
【0279】
[サポートツールによるセキュリティの個別解除]
(1) オペレータは、サポートツールを使用して、任意のプログラムブロックを指定しパスワードを付けて、コントローラ内の該当のプログラムブロックのセキュリティを解除する。
【0280】
(2) 解除の依頼を受けたコントローラは、コントローラ内の該当のプログラムブロックに対して記憶されているパスワードと一致するかを照合し、一致する場合は該当のプログラムブロックのセキュリティ設定を解除し、一致しない場合は解除依頼を拒否しその理由を返信する。
【0281】
(3) コントローラからの返信を受けたサポートツールは、正常終了ならばそれをオペレータに示し、パスワード不一致によるエラー終了ならば、オペレータにエラーを示す。
【0282】
図44には、本発明の具体的な応用例を示す説明図が示されている。いま仮に、8個のプログラムブロックPB1〜PB8を有するユーザプログラムが、マシンベンダーの側で設計され、これがプログラマブルコントローラに格納されて、ユーザへと納入され、ユーザの管理者を経て、ユーザの作業者へと手渡されるものと想定する。
【0283】
このような場合、マシンベンダーの側では、例えばノウハウの漏洩を防止するため、プログラムブロックPB7及びPB8の2つのプログラムブロックに対し、パスワードAを使用してセキュリティ(読み出し禁止)をかける。一方、ユーザ管理者の側では、ユーザ作業者による勝手なプログラム変更を防止するため、PB4〜PB6からなる3つのプログラムブロックに対して、パスワードBを使用して、セキュリティ(変更禁止)をかける。
【0284】
すると、ユーザの作業者の側では、PB1〜PB3に至る3個のプログラムブロックに関しては読み出し並びに変更が可能であるが、PB4〜PB6に至る3個のプログラムブロックに関しては、読み出しは可能であるものの、変更は不能となる。さらに、PB7及びPB8からなる2個のプログラムブロックに関しては、変更のみならず読み出しさえも不能となる。その結果、ユーザ作業者の側では、PB7及びPB8に関してはその中味を知ることさえもできない一方、PB4〜PB6からなる3個のプログラムブロックに関しては、読み出しのみが許容され、さらにPB1〜PB3からなる3個のプログラムブロックに関しては読み出しも変更も自由に行うことができることとなる。
【0285】
このように本発明を利用すれば、マシンベンダー、ユーザ管理者、ユーザ作業者のそれぞれに応じて、プログラムブロックグループ単位で、セキュリティレベルの異なるセキュリティ機能を設定することができ、それぞれの側のニーズに的確に対応することができる。
【0286】
なお、以上の実施の形態において、『セキュリティ情報』に関しては、ユーザプログラムの一部とすることもできる。さらに、『プログラムダウンロードコマンド』や『アップロードコマンド』のパラメータに、読み出しや書き替えの禁止を解除するためのパスワードを含めてもよい。
【0287】
以上の実施形態のPLCシステムによれば、次のような格別の作用効果が期待される。
(1)開発形態が複雑になった場合でも、ベンダー個々のノウハウが確実に保護できる。
(2)ユーザ側の組織構成が複雑化しても、目的に応じて作業者毎のアクセス権限を分けることができる。
(3)ベンダー側でアクセス制限をかけた形で納入された機械や装置においても、ユーザ側でその権限を守ったままで、新たに独自の権限を設定できる。
(4)プログラムの構造化単位を利用し、その単位を使ってアクセス権限をかけられるため、プログラム中の該当個所がわかりやすい。
(5)アクセス制限の設定範囲の柔軟性を向上させたままで、アクセス権限に関わる利用者の負担を軽減できる。
(6)プログラム全体を構造化し設計する際に、動作確認が完了したプログラムブロックを順次で書き替えできない状態のブロック群に加えられ、かつ、一つのパスワードを記憶しておくだけでその状態を作れるため、アクセス制限の管理負担を最小限に留めたままで、完成したプログラムブロックを誤って書き替えてしまうような作業ミスを容易に防止できる。
【0288】
尚、以上の実施の形態においては、グループ単位によるセキュリティ一括設定又は一括設定解除を、PLC側に格納されたプログラムデータについて行なったが、同様な処理はサポートツール側に格納されたプログラムデータについて行なうこともできる。
【0289】
このようなサポートツールは、ユーザプログラムをプログラムブロック単位で複数格納することができるメモリと、このメモリから読み出されたユーザプログラムを表示させることができる表示器と、各種の指令生成やデータ生成に使用することができる操作手段と、を有する。
【0290】
さらに、このサポートツールには、操作手段の所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義するグループ設定情報を生成するグループ設定情報生成手段と、操作手段の所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成するグループ鍵設定情報生成手段と、操作手段の所定操作に応じて、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報を生成するセキュリティレベル設定情報生成手段と、入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を操作手段の所定操作に応じて運用又は解除に設定するキュリティ状態設定手段と、プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従ったセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させないセキュリティ選択実行手段と、が具備される。
【0291】
また、セキュリティ動作としては、プログラムブロックの書き替えを禁止する動作であってもよいし、セキュリティ動作が、プログラムブロックの読み出し及び書き替えを禁止する動作であってもよい。
【0292】
さらに、プログラムブロックの読み出しには、読み出されたプログラムブロックの表示又は読み出されたプログラムブロックのプログラマブルコントローラへの転送が含まれていてもよい。
【0293】
【発明の効果】
以上の説明で明らかなように、本発明によれば、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみをセキュリティにより的確に保護可能となる。
【0294】
さらに、この発明によれば、ユーザプログラムの分割数が例えば数百乃至数千といった膨大な数に及ぶときにも、さほど鍵数(例えば、パスワード数)を増加させることなく、ユーザプログラム中の必要な部分のみを、必要なセキュリティレベルにより、的確に保護可能となる。
【図面の簡単な説明】
【図1】 本発明が適用されるPLCシステムの全体構成を示す説明図である。
【図2】 アプリケーションプログラムの構造の一例を概念的に示す説明図である。
【図3】 プログラマブルコントローラ全体のハードウェア構成を示すブロック図である。
【図4】 サポートツール全体のハードウェア構成を示すブロック図である。
【図5】 プログラマブルコントローラに組み込まれたシステムプログラムの全体を概略的に示すフローチャートである。
【図6】 プログラム運転処理の詳細を示すフローチャートである。
【図7】 ネットワーク処理の詳細を示すフローチャートである。
【図8】 プログラムダウンロードコマンドの対応処理の詳細を示すフローチャートである。
【図9】 プログラムアップロードコマンドの対応処理の詳細を示すフローチャートである。
【図10】 プログラムブロックダウンロードコマンドの対応処理の詳細を示すフローチャートである。
【図11】 プログラムブロックアップロードコマンドの対応処理の詳細を示すフローチャートである。
【図12】 グループ設定情報ダウンロードコマンドの対応処理の詳細を示すフローチャートである。
【図13】 セキュリティ情報ダウンロードコマンドの対応処理の詳細を示すフローチャートである。
【図14】 セキュリティ設定コマンドの対応処理の詳細を示すフローチャートである。
【図15】 セキュリティ解除コマンドの対応処理の詳細を示すフローチャートである。
【図16】 サポートツールに組み込まれたシステムプログラムの全体を概略的に示すゼネラルフローチャート(その1)である。
【図17】 サポートツールに組み込まれたシステムプログラムの全体を概略的に示すゼネラルフローチャート(その2)である。
【図18】 グループ設定機能を実現するための処理の詳細を示すフローチャート(その1)である。
【図19】 グループ設定機能を実現するための処理の詳細を示すフローチャート(その2)である。
【図20】 プログラム転送機能を実現するための処理の詳細を示すフローチャート(その1)である。
【図21】 プログラム転送機能を実現するための処理の詳細を示すフローチャート(その2)である。
【図22】 プログラム転送機能を実現するための処理の詳細を示すフローチャート(その3)である。
【図23】 プログラムブロック転送機能を実現するための処理の詳細を示すフローチャート(その1)である。
【図24】 プログラムブロック転送機能を実現するための処理の詳細を示すフローチャート(その2)である。
【図25】 プログラムブロック転送機能を実現するための処理の詳細を示すフローチャート(その3)である。
【図26】 セキュリティ設定機能を実現するための処理の詳細を示すフローチャート(その1)である。
【図27】 セキュリティ設定機能を実現するための処理の詳細を示すフローチャート(その2)である。
【図28】 セキュリティ設定機能を実現するための処理の詳細を示すフローチャート(その3)である。
【図29】 セキュリティ設定機能を実現するための処理の詳細を示すフローチャート(その4)である。
【図30】 グループ設定情報の一例を示す説明図である。
【図31】 セキュリティ情報の一例を示す説明図である。
【図32】 アプリケーションプログラムデータの一例を示す説明図である。
【図33】 プログラムブロックステータス情報の一例を示す説明図である。
【図34】 サポートツールの表示器における画面1(機能選択用)の説明図である。
【図35】 サポートツールの表示器における画面2(グループ設定用)の説明図である。
【図36】 サポートツールの表示器における画面3(ダウンロード/アップロード指定用)の説明図である。
【図37】 サポートツールの表示器における画面4(プログラムブロック指定用)の説明図である。
【図38】 サポートツールの表示器における画面5(セキュリティ機能設定対象選択用)の説明図である。
【図39】 サポートツールの表示器における画面6(セキュリティ設定機能・全体対象初期画面)の説明図である。
【図40】 サポートツールの表示器における画面7(セキュリティ設定機能・個別対象初期画面)の説明図である。
【図41】 サポートツールの表示器における画面8(セキュリティ設定機能・個別対象設定詳細)の説明図である。
【図42】 サポートツールの表示器における画面9(セキュリティ設定機能・個別対象解除詳細)の説明図である。
【図43】 ステータス画面の表示例を示す説明図である。
【図44】 本発明の具体的な応用例を示す説明図である。
【符号の説明】
1 プログラマブルコントローラ
2 サポートツール
3 入出力装置
4 ネットワーク
101 CPU
102 システムプログラムメモリ
103 ユーザプログラムメモリ
104 パラメータメモリ
105 ワークメモリ
106 I/Oメモリ
107 I/Oインタフェース
108 通信インタフェース
210 演算装置
211 中央処理装置
212 メモリ空間
212A パラメータデータエリア
212B ユーザプログラムデータエリア
212C サポートツールモジュールエリア
213 表示装置用メモリ
214 バス
215 通信インタフェース
220 入力装置
230 表示装置
A1 メインタイトル表示領域
A2 サブタイトル表示領域
A3 詳細表示領域
3401 プログラム編集選択ボタン
3402 グループ設定選択ボタン
3403 セキュリティ設定選択ボタン
3404 プログラム転送選択ボタン
3405 プログラムブロック転送選択ボタン
3501〜3505 グループID表示領域
3506 OK選択ボタン
3507 キャンセル選択ボタン
3601 ダウンロード選択ボタン
3602 アップロード選択ボタン
3603 キャンセル選択ボタン
3701 ブロック指定用カーソル
3702 OK選択用ボタン
3703 キャンセル選択ボタン
3801 全体設定選択ボタン
3802 個別設定選択ボタン
3803 キャンセル選択ボタン
3901 アクティブ状態の表示ランプ
3902 アクティブ状態の表示ランプ
3903 パスワード表示領域
3904 パスワード表示領域
3905 OK選択ボタン
3906 キャンセル選択ボタン
4001 グループID表示領域
4002 設定選択ボタン
4003 解除選択ボタン
4004 キャンセル選択ボタン
4101 アクティブ状態の表示ランプ
4102 パスワード表示領域
4103 設定選択ボタン
4104 キャンセル選択ボタン
4201 パスワード表示領域
4202 解除選択ボタン
4203 キャンセル選択ボタン

Claims (12)

  1. ユーザプログラムをプログラムブロック単位で複数格納することができ、それら格納されたプログラムブロックを一括して又は選択的に実行可能としたプログラマブルコントローラと、このプログラマブルコントローラをサポートするサポートツールとを一体又は別体に有し、さらに
    前記プログラマブルコントローラ又は前記サポートツールには、
    所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義し、かつ前記プログラムブロックは複数のプログラムブロックグループにグループ設定可能にグループ設定情報を生成するグループ設定情報生成手段と
    所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成するグループ鍵設定情報生成手段と、
    入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を所定操作に応じて運用又は解除に設定するセキュリティ状態設定手段とが含まれており、
    前記プログラマブルコントローラには、
    プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには所定のセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときには所定のセキュリティ動作を実行させないセキュリティ選択実行手段が含まれている、ことを特徴とするプログラマブルコントローラ・システム。
  2. 所定のセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作である、請求項1に記載のプログラマブルコントローラ・システム。
  3. 所定のセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作である、請求項1に記載のプログラマブルコントローラ・システム。
  4. ユーザプログラムをプログラムブロック単位で複数格納することができ、それら格納されたプログラムブロックを一括して又は選択的に実行可能としたプログラマブルコントローラと、このプログラマブルコントローラをサポートするサポートツールとを一体又は別体に有し、さらに
    前記プログラマブルコントローラ又は前記サポートツールには、
    所定操作に応じて、プログラムブロックグループとその構成プログラムブロックとの関係を定義し、かつ前記プログラムブロックは複数のプログラムブロックグループにグループ設定可能にグループ設定情報を生成するグループ設定情報生成手段と
    所定操作に応じて、プログラムブロックグループとそのグループ鍵との関係を定義するグループ鍵設定情報を生成するグループ鍵設定情報生成手段と、
    所定操作に応じて、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報を生成するセキュリティレベル設定情報生成手段と、
    入力鍵がいずれかのグループ鍵と一致したことを条件として、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報の中で、そのグループ鍵に対応するプログラムブロックグループのセキュリティ設定状態の内容を所定操作に応じて運用又は解除に設定するセキュリティ状態設定手段とが含まれており、
    前記プログラマブルコントローラには、
    プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従ったセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときにはセキュリティ動作を実行させないセキュリティ選択実行手段が含まれている、ことを特徴とするプログラマブルコントローラ・システム。
  5. 1のセキュリティレベルにしたがったセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作である、請求項に記載のプログラマブルコントローラ・システム。
  6. 1のセキュリティレベルにしたがったセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作である、請求項に記載のプログラマブルコントローラ・システム。
  7. ユーザプログラムをプログラムブロック単位で複数格納可能で、それら格納されたプログラムブロックを一括して又は選択的に実行可能であり、かつ
    プログラムブロックグループとその構成プログラムブロックとの関係を定義し、かつ前記プログラムブロックは複数のプログラムブロックグループにグループ設定可能にグループ設定情報を生成するグループ設定情報と、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報と、が外部から書き替え可能に記憶されており、さらに
    プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには所定のセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときには所定のセキュリティ動作を実行させないセキュリティ選択実行手段が含まれている、プログラマブルコントローラ。
  8. 所定のセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作である、請求項に記載のプログラマブルコントローラ。
  9. 所定のセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作である、請求項に記載のプログラマブルコントローラ。
  10. ユーザプログラムをプログラムブロック単位で複数格納可能で、それら格納されたプログラムブロックを一括して又は選択的に実行可能であり、かつ
    プログラムブロックグループとその構成プログラムブロックとの関係を定義し、かつ前記プログラムブロックは複数のプログラムブロックグループにグループ設定可能にグループ設定情報と、プログラムブロックグループ毎にセキュリティ設定状態を記憶させたセキュリティ設定状態情報と、プログラムブロックグループ又はプログラムブロックとそのセキュリティレベルとの関係を定義するセキュリティレベル設定情報とが外部から書き替え可能に記憶されており、さらに
    プログラムブロックを指定してのユーザプログラムアクセス要求が到来したときには、グループ設定情報とセキュリティレベル設定情報とセキュリティ設定状態情報とを参照し、当該プログラムブロックの所属するプログラムブロックグループのセキュリティ設定状態の内容が運用であるときには設定されたセキュリティレベルに従った所定のセキュリティ動作を実行させる一方、セキュリティ設定状態の内容が解除であるときには所定のセキュリティ動作を実行させないセキュリティ選択実行手段と、が含まれている、プログラマブルコントローラ。
  11. 1のセキュリティレベルにしたがった所定のセキュリティ動作が、ユーザプログラムブロックの書き替えを禁止する動作である、請求項10に記載のプログラマブルコントローラ。
  12. 1のセキュリティレベルにしたがった所定のセキュリティ動作が、ユーザプログラムブロックの読み出し及び書き替えを禁止する動作である、請求項10に記載のプログラマブルコントローラ。
JP2001133160A 2001-04-27 2001-04-27 プログラマブルコントローラ・システム Expired - Lifetime JP4238964B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2002328706A JP2002328706A (ja) 2002-11-15
JP4238964B2 true JP4238964B2 (ja) 2009-03-18

Family

ID=18981066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001133160A Expired - Lifetime JP4238964B2 (ja) 2001-04-27 2001-04-27 プログラマブルコントローラ・システム

Country Status (1)

Country Link
JP (1) JP4238964B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4501781B2 (ja) * 2005-05-26 2010-07-14 パナソニック電工株式会社 プログラマブルコントローラ
CN100507775C (zh) * 2006-03-13 2009-07-01 富士电机系统株式会社 可编程控制器的编程设备
KR20140071413A (ko) * 2011-09-09 2014-06-11 미쓰비시덴키 가부시키가이샤 프로그래머블 표시기
US10295976B2 (en) 2013-02-22 2019-05-21 Mitsubishi Electric Corporation System development device, system development method, and system development program
DE112014006708T5 (de) * 2014-05-29 2017-02-16 Mitsubishi Electric Corporation Gerätsteuerungssystem, Gerätsteuerungseinrichtung, Gerätsteuerungsverfahren und Programm
JP6954190B2 (ja) 2018-03-12 2021-10-27 オムロン株式会社 制御システム、コントローラ、および制御方法
JP6644209B1 (ja) * 2019-04-11 2020-02-12 三菱電機株式会社 制御装置

Also Published As

Publication number Publication date
JP2002328706A (ja) 2002-11-15

Similar Documents

Publication Publication Date Title
JP5708746B2 (ja) プログラミング装置、および、プログラマブルコントローラ
CA1310425C (en) License management methods and systems
JP4238964B2 (ja) プログラマブルコントローラ・システム
JP2006221274A (ja) 車両用電子制御装置および制御プログラムの書換え方法
JP2575358B2 (ja) Icカ−ド
JP2002366202A (ja) セキュリティシステム
JP6299095B2 (ja) 共有データ定義支援システム、そのマスタ装置、ローカル端末、プログラム
JP2007280348A (ja) プログラマブルコントローラのプログラミング装置
US7207066B2 (en) Method for protecting a microcomputer system against manipulation of data stored in a storage arrangement of the microcomputer system
JP6520241B2 (ja) 制御システム、その管理サーバ装置、支援装置
JP5886173B2 (ja) プログラマブルコントローラ
JP7481228B2 (ja) 制御装置
JP7469854B2 (ja) 画面作成装置
JP7180158B2 (ja) プログラム開発装置、およびコントローラ
TW200830177A (en) Method to control the execution of a program by a microcontroller
JPH11305807A (ja) プログラマブルコントローラ
JPH0935018A (ja) 携帯可能情報記録媒体およびそのアクセス方法
JP3903481B2 (ja) 分散型制御装置
JP2002538532A (ja) Icカードのアプリケーションに対するアクセス保護装置
CA2545292C (en) A method for writing data and applications into identification media
JP2004078265A (ja) 記憶装置の防火壁制御装置及び制御方法
JP4441911B2 (ja) ユーザ管理方法及びユーザ権限管理機能を備えたプログラム
JP3730684B2 (ja) プログラマブルコントローラ用表示装置およびその表示情報書込方法
JP2501050Y2 (ja) Icカ―ド
JP4632174B2 (ja) ディジタルミキサ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050901

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081006

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: 20081126

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081209

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

Free format text: PAYMENT UNTIL: 20120109

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4238964

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: 20130109

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140109

Year of fee payment: 5

EXPY Cancellation because of completion of term