(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023047160
(43)【公開日】2023-04-05
(54)【発明の名称】制御装置、制御システム、および、制御方法
(51)【国際特許分類】
G06F 12/00 20060101AFI20230329BHJP
G05B 19/042 20060101ALI20230329BHJP
G06F 9/48 20060101ALI20230329BHJP
G06F 9/52 20060101ALI20230329BHJP
【FI】
G06F12/00 560B
G05B19/042
G06F9/48 300Z
G06F9/52 150Z
G06F12/00 564A
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021156111
(22)【出願日】2021-09-24
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】酒田 輝昭
(72)【発明者】
【氏名】大塚 祐策
(72)【発明者】
【氏名】清水 俊樹
(72)【発明者】
【氏名】佐々本 学
【テーマコード(参考)】
5B160
5H220
【Fターム(参考)】
5B160CB01
5B160CC05
5H220AA01
5H220AA04
5H220BB03
5H220CX04
5H220JJ12
5H220JJ26
5H220JJ36
(57)【要約】
【課題】制御周期を順守した制御信号のメモリアクセスが要求される制御システムを、低コストで実現すること。
【解決手段】制御装置1は、I/O装置90によるメモリ11へのデータアクセスに用いられるデータを一時的に格納するキャッシュメモリ40と、汎用CPU12によるデータアクセスの期間に割り込んで、I/O装置90によるデータアクセスの対象となるデータをメモリ11からキャッシュメモリ40に読み込ませた後、I/O装置90による制御周期C1の期間内に、データアクセスの対象となるデータをキャッシュメモリ40を介してI/O装置90にアクセスさせるリード周期制御部20とを有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
汎用CPUによるデータアクセスと、I/O装置による制御周期が定められたデータアクセスとのいずれかが各期間で占有して行われるメモリと、
前記I/O装置による前記メモリへのデータアクセスに用いられるデータを一時的に格納するキャッシュメモリと、
前記汎用CPUによるデータアクセスの期間に割り込んで、前記I/O装置によるデータアクセスの対象となるデータを前記メモリから前記キャッシュメモリに読み込ませた後、前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリを介して前記I/O装置にアクセスさせる周期制御部とを有することを特徴とする
制御装置。
【請求項2】
前記I/O装置は複数台存在するとともに、前記キャッシュメモリは前記I/O装置ごとの格納領域を有しており、
前記周期制御部は、各前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリを介して前記I/O装置にアクセスさせることを特徴とする
請求項1に記載の制御装置。
【請求項3】
前記制御装置は、さらに、前記キャッシュメモリのデータを一時的に格納する第2キャッシュメモリを有しており、
前記周期制御部は、各前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリまたは前記第2キャッシュメモリを介して前記I/O装置にアクセスさせることを特徴とする
請求項2に記載の制御装置。
【請求項4】
前記キャッシュメモリは、前記汎用CPUのデータアクセス用の第1領域と、前記汎用CPUよりも動作周波数が低い前記I/O装置のデータアクセス用の第2領域とを個別に有しており、
前記制御周期の期間内に前記周期制御部から出力される制御信号に従い、前記第1領域と前記第2領域との間でデータを移動することで、前記I/O装置と前記汎用CPUとのデータ移動を制御するデータ同期部を有することを特徴とする
請求項1に記載の制御装置。
【請求項5】
前記I/O装置は複数台存在するとともに、前記キャッシュメモリには前記I/O装置ごとの格納領域が時分割で設定されており、
前記周期制御部は、各前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリを介して前記I/O装置にアクセスさせることを特徴とする
請求項1に記載の制御装置。
【請求項6】
前記周期制御部は、データアクセスの対象となるデータを前記メモリから前記キャッシュメモリに読み込ませる旨の制御信号を前記制御周期の期間内に発行することを特徴とする
請求項1に記載の制御装置。
【請求項7】
前記周期制御部は、データアクセスの対象となるデータを前記I/O装置から前記キャッシュメモリに書き出す旨の制御信号を前記制御周期の期間内に発行することを特徴とする
請求項1に記載の制御装置。
【請求項8】
前記周期制御部は、レジスタインタフェースから値を設定されるレジスタを参照して、前記制御周期の期間内に発行する制御信号を生成することを特徴とする
請求項6または請求項7に記載の制御装置。
【請求項9】
前記周期制御部は、前記I/O装置からのデータアクセスの要求を受信してから、次のデータアクセスの要求を受信するまでのサイクルカウンタが計測したカウント値をもとに、前記制御周期の期間内に発行する制御信号を生成することを特徴とする
請求項6または請求項7に記載の制御装置。
【請求項10】
請求項1ないし請求項5のいずれか1項に記載の制御装置と、前記I/O装置とを有することを特徴とする
制御システム。
【請求項11】
制御装置は、メモリと、キャッシュメモリと、周期制御部とを有しており、
前記メモリにおいて、汎用CPUによるデータアクセスと、I/O装置による制御周期が定められたデータアクセスとのいずれかが各期間で占有して行われ、
前記キャッシュメモリには、前記I/O装置による前記メモリへのデータアクセスに用いられるデータが一時的に格納され、
前記周期制御部は、前記汎用CPUによるデータアクセスの期間に割り込んで、前記I/O装置によるデータアクセスの対象となるデータを前記メモリから前記キャッシュメモリに読み込ませた後、前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリを介して前記I/O装置にアクセスさせることを特徴とする
制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置、制御システム、および、制御方法に関する。
【背景技術】
【0002】
水処理、プラント、FA(Factory Automation)、鉄鋼、発電などの社会インフラ分野において、制御装置で制御を行う制御システムが各種実用化されている。
例えば、上下水処理、工場、製鉄所、発電プラント等では、主機に接続された制御装置を複数有する制御システムが処理を担っている。この制御装置は制御演算処理を実行し、主機に対する制御指令を制御データ(信号)として出力することで制御を行う。
【0003】
このような制御を行うためには、制御システムで定められている制御周期の時間内に演算処理が完了して、I/O(Input/Output)に対し入出力がなされなければならない場合がある。時間内に出力されない場合、システムが正常に可動できなくなって損失が発生すると共に、システムの状態が不安定になる可能性がある。そのため、こうした制御システムにおける制御装置には、メモリアクセスの高速化が要求されている。
【0004】
そこで、特許文献1には、共通バスの帯域を有効に利用しつつ、滞留したデータ転送を速やかに行うことができるデータ転送装置が記載されている。すなわち、特許文献1の請求項1には、以下の構成を備えるデータ転送装置が開示されている。
・共通バスに転送される転送データを一時的に格納するバッファ部
・入力データを転送データとしてバッファ部にライトすると共に、入力データをバッファ部にライトした旨を示す通知信号を出力するライト制御部
・バッファ部から転送データをリードするリード制御部
・リード制御部によりバッファ部からリードされた転送データを、所定のバスプロトコルに従って共通バスに転送するインタフェース部
・通知信号に基づいて、リード制御部がバッファ部から転送データをリードするタイミングを制御することにより、共通バスの帯域を平滑化する帯域平滑部
【0005】
また、特許文献2の請求項1には、以下の構成を備えることで、キャッシュメモリから高速にデータを読み出すことができる演算処理装置が開示されている。
・複数の記憶素子にそれぞれ複数のデータを記憶するキャッシュメモリ
・キャッシュメモリからデータが読み出されたタイミングが閾値より遅いときにはエラーを検出するエラー検出回路
・エラーが検出されないときにはキャッシュメモリから読み出されたデータをラッチ(保持)し、エラーが検出されたときには待機期間経過後にキャッシュメモリから読み出されたデータをラッチするラッチ回路
・ラッチ回路によりラッチされたデータの処理を行う演算処理装置コア
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2017-4430号公報
【特許文献2】特開2013-89171号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
近年の制御システムでは、将来の労働力不足問題などに対応するために自動化や自律化を進めることによる高効率化が検討されている。そのためには広大なフィールドに複数のセンサ等を配置して取得したデータをAI(Artificial Intelligence)などを用いて分析することで、より高効率な制御指令値を演算する検討が始まっている。AIなどの演算処理を汎用CPU(Central Processing Unit)で動作する汎用OS(Operating System)の上で処理できるようにすることが望まれている。
【0008】
一方、従来の制御システム内で制御処理の主体となるマイコンは、制御周期を順守した制御信号のメモリアクセスを行うように設計されている。これにより、制御周期のミリ秒単位でバルブを開閉したり、ロボットアームを動作させたりする精密な制御を実行できる。
このようなリアルタイム性を重視するマイコンは、ASIC(Application Specific Integrated Circuit)などの専用回路として設計されるため、大量に流通される汎用CPUよりも開発コストや調達コストが高くなりがちである。また、専用部品であるマイコンは、制御信号のやり取りは得意だが、大量のデータの収集、収集したデータの分析および最適出力の自動化などの汎用的な処理は苦手である。
【0009】
そこで、従来型の制御システムの制御装置から、従来のマイコンを汎用CPUや汎用OSに置き換えつつ、他のI/O処理を行うモジュールなどは互換性維持のために従来システムのものを流用するような併用型の運用を検討する。
この併用型では、汎用CPUが制御プログラムと、それ以外のプログラムとを同一環境で動作させることにより、ジッタの発生やメモリアクセス逼迫などの影響で性能が低下することもある。
【0010】
そのため、I/O処理を行うモジュールが汎用CPUを介して従来の制御周期を順守できなくなることが懸念される。その結果、併用型の制御システムにおいて互換性を維持することができず、システムの状態が不安定になるかもしれない。
なお、特許文献1、特許文献2などの従来の技術では、汎用CPUと従来型の制御システムとの併用を想定していない。よって、従来のマイコンを汎用CPUに置き換えた場合でも、制御周期を順守したメモリアクセスを汎用CPUに実行させる仕組みが必要となる。
【0011】
そこで、本発明は、制御周期を順守した制御信号のメモリアクセスが要求される制御システムを、低コストで実現することを主な課題とする。
【課題を解決するための手段】
【0012】
上記の課題を解決するため、本発明の制御装置は以下の特徴を有する。
本発明は、汎用CPUによるデータアクセスと、I/O装置による制御周期が定められたデータアクセスとのいずれかが各期間で占有して行われるメモリと、
前記I/O装置による前記メモリへのデータアクセスに用いられるデータを一時的に格納するキャッシュメモリと、
前記汎用CPUによるデータアクセスの期間に割り込んで、前記I/O装置によるデータアクセスの対象となるデータを前記メモリから前記キャッシュメモリに読み込ませた後、前記I/O装置による前記制御周期の期間内に、データアクセスの対象となるデータを前記キャッシュメモリを介して前記I/O装置にアクセスさせる周期制御部とを有することを特徴とする。
その他の手段は、後記する。
【発明の効果】
【0013】
本発明によれば、制御周期を順守した制御信号のメモリアクセスが要求される制御システムを、低コストで実現できる。
【図面の簡単な説明】
【0014】
【
図2】実施例1に関する制御装置のリード周期制御部の構成図である。
【
図3】実施例1に関するリード周期指定部の第1例を示す構成図である。
【
図4】実施例1に関するリード周期指定部の第2例を示す構成図である。
【
図5】実施例1に関する制御装置のライト周期制御部の構成図である。
【
図6】実施例1に関するライト周期指定部の第1例を示す構成図である。
【
図7】実施例1に関するライト周期指定部の第2例を示す構成図である。
【
図8】比較例の制御装置におけるタイミングチャートである。
【
図9】実施例1に関する
図1の制御装置の動作の一例を説明するタイミングチャートである。
【
図10】実施例2に関する制御装置の構成図である。
【
図11】実施例2に関するリード周期制御部の構成図である。
【
図12】実施例2に関するライト周期制御部の構成図である。
【
図13】比較例の制御装置におけるタイミングチャートの一例を示す図である。
【
図14】実施例2に関する制御装置の動作の一例を説明するタイミングチャートである。
【
図15】実施例3に関する制御装置の構成図である。
【
図16】実施例3に関する制御装置の動作の一例を説明するタイミングチャートである。
【
図17】実施例4に関する制御装置の構成図である。
【
図18】実施例5に関する制御装置の構成図である。
【
図19】実施例5に関する制御装置の動作の一例を説明するタイミングチャートである。
【
図20】各実施例の制御装置の実装例を示す構成図である。
【
図21】各実施例の制御装置を水プラント(水処理システム)に適用した場合の適用例1を示す構成図である。
【
図22】各実施例の制御装置をFAシステムに適用した場合の適用例2を示す構成図である。
【
図23】各実施例の制御装置を鉄鋼システムの熱延設備に適用した場合の適用例3を示す構成図である。
【
図24】各実施例の制御装置を発電制御システムに適用した場合の適用例4を示す構成図である。
【発明を実施するための形態】
【0015】
以下、本発明の各実施例を説明する。
【実施例0016】
図1は、実施例1に係る制御装置1Aの構成図である。
制御装置1Aは、メモリ11と、汎用CPU12と、リードインタフェース13と、ライトインタフェース14と、バスインタフェース16と、バス18と、I/Oモジュール19と、キャッシュメモリ40とを有する。
バスインタフェース16は、キャッシュメモリ40をバス18に接続する。バス18は、バスインタフェース16と、I/Oモジュール19とを接続する。I/Oモジュール19は、I/O装置90と入出力を行うとともに、メモリ11へ周期的にライト処理を行い、メモリ11から周期的にリード処理を行う。
【0017】
メモリ11には、I/O装置90が制御に用いるデータが格納される。汎用CPU12は、汎用OSが動作し、汎用OSにより汎用アプリケーションが実行される。汎用CPU12は、接続されるメモリ11にアクセスすることで、データを読み書きする。
キャッシュメモリ40には、メモリ11内のデータが一時的に格納されている。I/Oモジュール19がメモリ11にアクセスする代わりに、キャッシュメモリ40にアクセスすることで、データのアクセス時間を短縮できる。
【0018】
なお、メモリ11のデータを、キャッシュメモリ40のデータとして読み込むことで、キャッシュメモリ40はリードキャッシュとして機能する。リードインタフェース13は、リードキャッシュのデータの経路である。I/Oモジュール19は、キャッシュメモリ40のデータを自身に読み込むためのリード要求をキャッシュメモリ40に通知することで、キャッシュメモリ40のデータを読み込む。
【0019】
また、キャッシュメモリ40のデータを、メモリ11のデータとして書き込みことで、キャッシュメモリ40はライトキャッシュとして機能する。ライトインタフェース14は、ライトキャッシュのデータの経路である。I/Oモジュール19は、自身のデータをキャッシュメモリ40に書き出すためのライト要求をキャッシュメモリ40に通知することで、キャッシュメモリ40にデータを書き出す。
【0020】
実施例1の特徴として、制御周期を順守した制御信号のメモリアクセスをI/Oモジュール19に実行させるために、周期制御部として、リード周期制御部20、および、ライト周期制御部30を備える。
リード周期制御部20は、I/O装置90が汎用CPU12に対してリード処理を行うときの制御周期を制御する。リード周期制御部20と汎用CPU12とはリードインタフェース13を介して接続され、リード周期制御部20とキャッシュメモリ40とが接続される。
ライト周期制御部30は、I/O装置90が汎用CPU12に対してライト処理を行うときの制御周期を制御する。ライト周期制御部30と汎用CPU12とはライトインタフェース14を介して接続され、ライト周期制御部30とキャッシュメモリ40とが接続される。
【0021】
図2は、制御装置1Aのリード周期制御部20Aの構成図である。リード周期制御部20Aは、リード周期指定部21と、リードリクエストタイミング生成回路22と、ANDゲート23とを有する。
リード周期指定部21は、I/Oモジュール19からキャッシュメモリ40を介してリードリクエスト信号21Dが入力されると、そのタイミングをトリガにリード周期指示信号22Dを出力する。
リードリクエスト信号21Dは、I/O装置90がリードデータ信号24D(制御データ)をメモリ11から読み込む旨のリード要求である。リード周期指示信号22Dは、リードデータ信号24Dのリード処理を行うときの制御周期を汎用CPU12に指示する信号である。
【0022】
リードリクエストタイミング生成回路22は、リード周期指示信号22Dをもとにリードリクエストタイミング信号23Dを生成して汎用CPU12に出力する。リードリクエストタイミング信号23Dは、リード周期指示信号22Dの制御周期を順守するリード処理のタイミングを、汎用CPU12に通知する信号である。また、リードリクエストタイミング信号23Dは、データアクセスの対象となるデータをメモリ11からキャッシュメモリ40に読み込ませる旨の制御信号である。
汎用CPU12は、リードリクエストタイミング信号23Dを受信することで、メモリ11からリード処理するリードデータ信号24D(の格納アドレス)を特定し、制御周期までにキャッシュメモリ40に格納する。
【0023】
また、汎用CPU12は、リードデータ信号24Dをキャッシュメモリ40に格納したことを契機として、キャッシュメモリ40からリードデータ信号24Dを読み込み可能状態になったことを知らせるリードデータイネーブル信号25Dを、リード周期制御部20Aに通知する。
ANDゲート23は、リードデータイネーブル信号25Dとリード周期指示信号22Dとの論理積を、リードデータタイミングイネーブル信号26Dとして生成する。リードデータタイミングイネーブル信号26Dは、キャッシュメモリ40からリードデータ信号24Dを読み込み可能状態であり、かつ、現在がリード周期指示信号22Dで示される制御周期内であることをI/Oモジュール19に通知する信号である。
【0024】
これにより、I/Oモジュール19は、制御周期内に通知されるリードデータタイミングイネーブル信号26Dの受信を契機として、キャッシュメモリ40からリードデータ信号24Dを制御周期内に読み込める。
換言すると、I/Oモジュール19は、リードデータタイミングイネーブル信号26Dの受信により、キャッシュメモリ40から所望のリードデータ信号24Dを確実に(キャッシュミスせずに)、キャッシュヒットして読み込むことができる。
【0025】
図3は、リード周期指定部21の第1例を示す構成図である。
図2のリード周期指定部21は、リード周期指定レジスタ21A1を有するリード周期指定部21Aとして構成される。
リード周期指定レジスタ21A1は、レジスタインタフェース21D2から値を設定されるレジスタであり、設定された値からリード周期指示信号22Dを出力する。
レジスタインタフェース21D2は、8bit、16bit、32bit、64bitなどの所定のビット幅を持ち、管理者によって、リードリクエスト信号21Dに関する情報(信号の種別、信号の制御周期など)が入力される。
【0026】
図4は、リード周期指定部21の第2例を示す構成図である。
図2のリード周期指定部21は、サイクルカウンタ21B1と、第1バッファ21B2と、第2バッファ21B3と、差分計算回路21B4と、リード周期指定レジスタ21B5とを有するリード周期指定部21Bとして構成される。
サイクルカウンタ21B1は、リードリクエスト信号21Dが有効となったタイミングをトリガに、現在のカウント値を第1バッファ21B2に保存するとともに、回路のクロック周波数に応じてカウント数のインクリメントを開始する。
【0027】
サイクルカウンタ21B1は、再びリードリクエスト信号21Dが有効となったタイミングで現在のカウント値を第2バッファ21B3に保存する。
差分計算回路21B4は、第1バッファ21B2のカウント値と、第2バッファ21B3のカウント値と差を計算して、リード周期指定レジスタ21B5に設定する。リード周期指定レジスタ21B5は、設定された値をリード周期指示信号22Dとして出力する。
【0028】
図5は、制御装置1Aのライト周期制御部30Aの構成図である。ライト周期制御部30Aは、ライト周期指定部31と、ライト応答タイミング生成回路32と、ANDゲート33とを有する。
ライト周期制御部30Aは、I/Oモジュール19からキャッシュメモリ40を介して、キャッシュメモリ40内のデータであるライトデータ信号31D(制御データ)、および、ライトリクエスト信号32Dの入力を受け付ける。ライトリクエスト信号32Dは、I/O装置90がライトデータ信号31Dをキャッシュメモリ40(およびメモリ11)に書き出す旨のライト要求である。
【0029】
ANDゲート33は、ライトリクエスト信号32Dとライト周期指示信号34Dとの論理積を、ライトデータタイミングイネーブル信号36Dとして生成する。ライト周期指示信号34Dは、ライトデータ信号31Dのライト処理を行うときの制御周期を汎用CPU12に指示する信号である。ライトデータタイミングイネーブル信号36Dは、キャッシュメモリ40からライトデータ信号31Dを読み込み可能状態であり、かつ、現在がライト周期指示信号34Dで示される制御周期内であることを汎用CPU12に通知する信号である。
【0030】
ライト周期指定部31は、ライトリクエスト信号32D(またはライトデータタイミングイネーブル信号36D)への応答であるライトアクノリッジ信号33Dを汎用CPU12から受信する。ライト周期指定部31は、ライトアクノリッジ信号33Dが有効となったタイミングをトリガに、ライト周期指示信号34Dを出力する。
【0031】
ライト応答タイミング生成回路32は、ライト周期指示信号34Dからライトアクノリッジタイミング信号35Dを生成してキャッシュメモリ40などの外部に出力する。ライトアクノリッジタイミング信号35Dは、ライト周期指示信号34Dの制御周期を順守するライト処理のタイミングを、外部(汎用CPU12、キャッシュメモリ40など)に通知する信号である。また、ライトアクノリッジタイミング信号35Dは、データアクセスの対象となるデータをI/O装置90からキャッシュメモリ40に書き出す旨の制御信号である。
汎用CPU12は、ライトアクノリッジタイミング信号35Dを受信することで、メモリ11にライト処理するライトデータ信号31D(のキャッシュメモリ40内での格納アドレス)を特定し、制御周期までにライトアクノリッジ信号33Dを応答する。
【0032】
これにより、汎用CPU12は、制御周期内に通知されるライトデータタイミングイネーブル信号36Dの受信を契機として、キャッシュメモリ40からライトデータ信号31Dを制御周期内に読み込めるとともに、ライトアクノリッジ信号33Dを制御周期内に応答できる。
換言すると、汎用CPU12は、ライトデータタイミングイネーブル信号36Dの受信により、キャッシュメモリ40から所望のライトデータ信号31Dを確実に(キャッシュミスせずに)、キャッシュヒットして読み込むことができる。
【0033】
図6は、ライト周期指定部31の第1例を示す構成図である。
ライト周期指定部31Aは、ライト周期指定レジスタ31A1を有する。ライト周期指定レジスタ31A1は所定のビット幅を持ち、例えば8bit、16bit、32bit、64bitなどである。
ライト周期指定レジスタ31A1は、汎用CPU12などから所定のビット幅に合わせたレジスタインタフェース32D2を介して値が設定されると、その設定された値をライト周期指示信号34Dとして出力する。
【0034】
図7は、ライト周期指定部31の第2例を示す構成図である。
ライト周期指定部31Bは、サイクルカウンタ31B1と、と、バッファ31B2と、と、バッファ31B3と、と、差分計算回路31B4と、と、ライト周期指定レジスタ31B5とを有する。
サイクルカウンタ31B1は、ライトリクエスト信号32Dが有効となったタイミングをトリガに、現在のカウント値をバッファ31B2に保存するとともに、回路のクロック周波数に応じてカウント数のインクリメントを開始する。サイクルカウンタ31B1は、再びライトリクエスト信号32Dが有効となったタイミングで現在のカウント値をバッファ31B3に保存する。
【0035】
差分計算回路31B4は、バッファ31B2のカウント値と、バッファ31B3のカウント値との差を計算して、その結果をライト周期指定レジスタ31B5に設定する。
ライト周期指定レジスタ31B5は、設定された値をライト周期指示信号34Dとして出力する。
【0036】
図25は、比較例の制御装置を示す構成図である。
図25の制御装置1Fは、
図1の制御装置1Aと比較して、リード周期制御部20A、ライト周期制御部30A、キャッシュメモリ40、リードインタフェース13、ライトインタフェース14が省略されている。よって、制御装置1Fは、汎用CPU12とバスインタフェース16とを接続した構成となっている。
【0037】
図8は、
図25の制御装置1Fにおけるタイミングチャート2Aである。制御装置1Fは、一定の制御周期の期間内に、I/O装置90が汎用CPU12に接続するメモリ11からデータをリードする。
タイミングチャート2Aの上段の行「メモリ」は、メモリ11を排他的に占有している装置を示しており、ここでは汎用CPU12とI/O装置90が該当する。
タイミングチャート2Aの中段の行「I/O」は、I/O装置90がリードリクエスト(
図2のリードリクエスト信号21Dであり「RR」と略す)を出力してリードデータ(
図2のリードデータ信号24Dであり、「RD」と略す)をメモリ11経由で受信することを示す。
タイミングチャート2Aの下段の行「制御周期」は、I/O装置90がメモリ11にアクセスするときの制御周期(各周期の制限時間)を示す。
【0038】
制御周期C1では、メモリアクセスに要する時間が制限時間を順守できている。つまり、汎用CPU12がメモリ11を占有した後にどの装置もメモリ11を占有しておらず、I/O装置90からリードリクエスト(RR1)が出力された時点でI/O装置90がメモリ11を占有し、リードデータ(RD1)を受信して制御周期C1の期間内に収まっている。
【0039】
制御周期C2では、メモリアクセスに要する時間が制限時間を順守できていない。ここで、汎用OSを動作させている汎用CPU12が所定の処理時間で終了しない。よって、I/O装置90からリードリクエスト(RR2)が出力されても、メモリ11を占有できるのが制御周期C3に入ってからとなる。つまり、リードデータ(RD2)が制御周期C2の期間内に受信できなかった。
このような場合、制御システムによっては、制御周期内に入出力を完了するという従来の処理が行えなかったことで、システムに障害が発生したり、危険な状態に陥ったりする可能性がある。
【0040】
図9は、
図1の制御装置1Aの動作の一例を説明するタイミングチャート2Bである。制御装置1Aは、一定の制御周期の期間内に、I/O装置90が汎用CPU12に接続するメモリ11からデータをリードする。
タイミングチャート2Bの上から第1段、第3段、第4段の行は、
図8で説明した通りである。ここで、タイミングチャート2A,2Bでは、I/O装置90からのリードリクエスト(RR)が出力されるタイミングは同一である。
タイミングチャート2Bの第2段の行「キャッシュメモリ」は、キャッシュメモリ40内のデータ内容を示しており、このデータ内容はリード周期制御部20Aとライト周期制御部30Aによって制御される。
【0041】
制御周期C1では、メモリアクセスに要する時間が制限時間を順守できている。つまり、汎用CPU12がメモリ11を占有した後にどの装置もメモリ11を占有していないので、リード周期制御部20AがI/O装置90用のリードデータ(RD1)をキャッシュメモリ40に格納する。
I/O装置90からリードリクエスト(RR1)が出力された時点でキャッシュメモリ40にリードデータ(RD1)が格納されているので、I/O装置90はリードデータ(RD1)を受信して制御周期C1の期間内に収まっている。
【0042】
制御周期C2でも、メモリアクセスに要する時間が制限時間を順守できている。ここで、汎用OSを動作させている汎用CPU12が所定の処理時間で終了しない。しかし、リード周期制御部20Aがリード周期を判定して汎用CPU12のアクセスタイミングに割り込んで、I/O装置90のリードデータ(RD2)をキャッシュメモリ40に格納する。
つまり、リード周期制御部20Aは、汎用CPU12によるデータアクセスの期間に割り込んで、I/O装置90によるデータアクセスの対象となるデータをメモリ11からキャッシュメモリ40に読み込ませた後、I/O装置90による制御周期C1の期間内に、データアクセスの対象となるデータをキャッシュメモリ40を介してI/O装置90にアクセスさせる。
【0043】
なお、汎用CPU12のアクセスタイミングに割り込む処理の詳細は、例えば、
図2の説明の通りである。つまり、汎用CPU12は、リード周期制御部20Aから受信したリードリクエストタイミング信号23Dにより、アクセスタイミングの割り込みを認識する。そして、汎用CPU12は、自身のメモリアクセスよりも、I/O装置90のメモリアクセスを優先させる。
【0044】
これにより、I/O装置90からリードリクエスト(RR2)が出力された時点でキャッシュメモリ40にリードデータ(RD2)が格納されているので、リードデータ(RD2)を受信して制御周期C2の期間内に収まっている。
制御周期C3でも、メモリアクセスに要する時間が制限時間を順守できている。
【0045】
以上説明したように、実施例1によれば、汎用CPU12、汎用OSの採用による拡張性の高い制御システムの実装において、従来モジュールのI/O処理のタイミング互換により、リアルタイム性を保証できる制御装置1Aを提供できる。
以下、実施例2~実施例5(制御装置1B~1E)を説明するが、制御装置1Aが備えている各部品(例えば、メモリ11)を、制御装置1B~1Eでは図示していない場合でも、制御装置1Aが備えている各部品は、制御装置1B~1Eでも備えられていることとしてもよい。
ここで、最初の制御周期C1では、汎用CPU12がメモリ11を占有した後にどの装置もメモリ11を占有していない。そこで、第1I/O装置91からリードリクエスト(RR1)が出力された時点で、第1I/O装置91がメモリ11を占有する。よって、第1I/O装置91は、制御周期C1の期間内にリードデータ(RD1)を受信できる。
この結果、ライトデータ(WD1)に対するライトアクノリッジ(WA1)は、制御周期C11には間に合わず、次の制御周期C12での返信となってしまう。一方、第2I/O装置92から次のライトデータ(WD2)は制御周期C12の期間内に送信できる。
また、第1I/O装置91からのリードリクエスト(RR2)に対するリードデータ(RD2)は、制御周期C2には間に合わず、次の制御周期C3での受信となってしまう。
さらに、ライトデータ(WD1)に対するライトアクノリッジ(WA1)を受信しないと、I/Oが次の処理をできないようなケースもある。このような場合、制御システムによっては、制御周期内に入出力を完了するという従来の処理が行えなかったことで、システムに障害が発生したり、危険な状態に陥ったりする可能性がある。
ここで、最初の制御周期C1では、汎用CPU12がメモリ11を占有した後にどの装置もメモリ11を占有していない。よって、リード周期制御部20Bは、第1I/O装置91用のリードデータ(RD1)をキャッシュメモリ40に格納する。第1I/O装置91からリードリクエスト(RR1)が出力された時点でキャッシュメモリ40にリードデータ(RD1)が格納されている。よって、第1I/O装置91は、制御周期C1の期間内にリードデータ(RD1)を受信できる。
また、制御周期C11では、ライト周期制御部30Bは、第2I/O装置92からライトデータ(WD1)がメモリ11に対して出力されたタイミングで、キャッシュメモリ40にライトデータ(WD1)を格納する。よって、第2I/O装置92は、制御周期C11の期間内にライトアクノリッジ(WA1)を受信できる。
制御周期C12では、ライト周期制御部30Bは、汎用CPU12がメモリ11を占有しなくなったタイミングで、第2I/O装置92のライトデータ(WD1)をメモリ11へ転送する。
制御周期C2では、汎用OSを動作させている汎用CPU12が所定の処理時間で終了しない。しかし、リード周期制御部20Bは、リード周期を判定して汎用CPU12のアクセスタイミングに割り込んで、第1I/O装置91のリードデータ(RD2)をキャッシュメモリ40に格納する。
よって、I/Oからリードリクエスト(RR2)が出力された時点でキャッシュメモリ40にリードデータ(RD2)が格納されているので、第1I/O装置91は、制御周期C2の期間内にリードデータ(RD2)を受信できる。
制御周期C3以降についても同様に、リードアクセスとライトアクセスが、各制御周期の期間内に実行される。
この実施例2の制御装置1Bによれば、従来のI/Oモジュール19を複数接続する場合においても、従来モジュールのI/O処理のタイミング互換によりリアルタイム性を保証できる。よって、汎用CPU12、汎用OSの採用による拡張性の高い制御システムを実装できる。
なお、実施例2ではI/O装置とI/Oモジュールとの組が2つの例で示したが、3つ以上の構成となってもよい。