以下、図1〜図10を用いて、本発明の実施形態を説明する。以下では、オプション装置が取り付けられた画像形成装置100を説明する。また、画像形成装置100は、インクジェット方式のものである。例えば、画像形成装置100は、A4用紙を1分間に100枚以上印刷できる。なお、画像形成装置100は電子写真方式のものでもよい。画像形成装置100としてプリンターを例に挙げて説明する。なお、画像形成装置100は、例えば、複合機でもよい。オプション装置として、給紙装置7を例に挙げて説明する。
(画像形成装置100の概要)
まず、図1及び図2を用いて、実施形態に係る画像形成装置100の概要を説明する。図1、図2は、実施形態に係る画像形成装置100の一例を示す図である。
画像形成装置100は制御部1、記憶部2、操作パネル3、エンジン制御部4、印刷部5、通信部6を含む。制御部1は画像形成装置100の各部を制御する。制御部1は、CPU11と画像処理回路12を含む。CPU11は、記憶部2に記憶される制御プログラムや制御データに基づき演算、処理を行う。記憶部2は、ROM、ストレージ(HDD、フラッシュROM)のような不揮発性の記憶装置と、RAMのような揮発性の記憶装置を含む。画像処理回路12は、印刷に用いる画像データに対し、画像処理を行う。
画像形成装置100は操作パネル3を含む。操作パネル3は、表示パネル31、タッチパネル32を含む。表示パネル31は設定画面や情報を表示する。表示パネル31は、キー、ボタン、タブのような操作用画像を表示する。タッチパネル32は、表示パネル31へのタッチ操作を検知する。タッチパネル32の出力に基づき、制御部1は、操作された操作用画像を認識する。制御部1は、使用者が行った設定操作を認識する。
画像形成装置100はエンジン制御部4と印刷部5を含む。印刷部5は、給紙部5a、給紙装置7、用紙搬送部5b及び画像形成部5cを含む。制御部1から印刷実行指示を受けたとき、印刷実行指示に基づき、エンジン制御部4は印刷部5の動作を制御する。給紙部5aは本体内部に設けられる。給紙部5aは用紙束を収容する。給紙部5aは給紙ローラー51を含む。給紙ローラー51は給紙部5a内の最上位の用紙と接する。
給紙装置7はオプション装置である。給紙装置7は、画像形成装置100の本体部分101の右側面に取り付けられる。給紙装置7は複数の用紙カセット71を含む。各用紙カセット71は用紙束を収容する。各用紙カセット71に対し、1つのオプション給紙ローラー72が設けられる。各オプション給紙ローラー72は用紙カセット71にセットされた用紙の最上位と接する。
印刷ジョブのとき、制御部1は、給紙ローラー51とオプション給紙ローラー72のうち、何れか1つを回転させる。操作パネル3は、給紙部5aから給紙するか、給紙装置7から給紙するかの選択を受け付ける。また、通信部6に接続されたコンピューター200を用いて、給紙部5aから給紙するか、給紙装置7から給紙するかを選択することもできる。また、操作パネル3は、給紙装置7のうち、どの用紙カセット71から給紙するかの選択も受け付ける。また、通信部6に接続されたコンピューター200を用いて、給紙装置7のどの用紙カセット71から給紙するかを選択することもできる。操作パネル3への入力又は通信部6での通信に基づき、制御部1は、給紙を行う部分を認識する。制御部1は、給紙を行う部分をエンジン制御部4に通知する。エンジン制御部4は、通知された部分から用紙を給紙させる。
給紙装置7は、オプション搬送部73を含む。オプション搬送部73は、オプション搬送路74とオプション搬送ローラー対75を含む。便宜上、図2では、1つのオプション搬送ローラー対75にのみ符号を付す。オプション搬送ローラー対75はオプション搬送路74に沿って複数設けられる。給紙装置7から給紙を行うとき、エンジン制御部4は、オプション搬送ローラー対75を回転させる。給紙装置7から給紙された用紙は、本体内に搬入される。給紙装置7の搬送路は、画像形成部5cの上流側の搬送路に合流する。これにより、給紙装置7から給紙された用紙は、画像形成部5cに供給される。
用紙搬送部5bは用紙を搬送する。図2において用紙搬送経路を太線で示す。搬送経路に沿って複数の搬送ローラー対52が設けられる。便宜上、図2では、1つの搬送ローラー対52にのみ符号を付す。用紙搬送部5bは、搬送ユニット53を含む。搬送ユニット53は、駆動ローラー54と複数の従動ローラー55と搬送ベルト56を含む。搬送ベルト56は、駆動ローラー54と各従動ローラー55に架け回される。印刷ジョブのとき、エンジン制御部4は、印刷時、エンジン制御部4は搬送用モーターを回転させる。搬送用モーター59は、各搬送ローラー対52を回転させる。搬送用モーター59は、各搬送ローラー対52を回転させる。印刷時、エンジン制御部4はベルトモーター510を回転させる。ベルトモーター510は駆動ローラー54を回転させる。その結果、給紙部5a又は給紙装置7から供給された用紙は画像形成部5cに向けて搬送される。画像形成部5cでの印刷後、エンジン制御部4は、用紙搬送部5bに排出トレイ57まで用紙を搬送させる。記録済(印刷済)の用紙は機外に排出される。排出トレイ57は、画像形成装置100の右側面上部に取り付けられる。なお、用紙搬送部5bは吸着部58(図3参照)を含む。吸着部58は用紙を搬送ベルト56に吸着させる。吸着により、用紙の位置及び各ノズルと用紙の距離が固定される。印刷時、エンジン制御部4は吸着部58を動作させる。
画像形成部5cは、搬送用紙にインクを吐出して画像を記録する。言い換えると、画像形成部5cは印刷する。印刷のための画像データは画像処理回路12から供給される。図1、図2に示すように、画像形成装置100は、4本のラインヘッド50(50Bk、50C、50M、50Y)を含む。搬送ベルト56の上方に各ラインヘッド50が設けられる。各ラインヘッド50と搬送ベルト56の間に一定の隙間が設けられる。各ラインヘッド50は固定される。各ラインヘッド50は複数のノズルを含む。各ノズルの開口は搬送ベルト56と向かい合う。各ノズルからインクが吐出される。ラインヘッド50Bkはブラックのインクを吐出する。ラインヘッド50Cはシアンのインクを吐出する。ラインヘッド50Mはマゼンタのインクを吐出する。ラインヘッド50Yはイエローのインクを吐出する。インクは搬送用紙に着弾する。これにより、画像が記録(形成)される。ラインヘッド50ごとに、インクを供給するインクタンクが設けられる。
制御部1は通信部6と接続される。通信部6は通信用のハードウェア(コネクタ、通信用回路)とソフトウェアを含む。通信部6はコンピューター200と通信する。コンピューター200は、例えば、PCやサーバーである。制御部1はコンピューター200から印刷用データを受信する。印刷用データは印刷設定や印刷内容を含む。印刷用データはページ記述言語で記述されたデータを含む。制御部1(画像処理回路12)は、受信した(入力された)印刷用データを解析する。受信した印刷用データに基づき、制御部1は、画像形成部5cでの画像形成に用いる画像データ(ラスターデータ)を生成する。
(エンジン制御部4)
次に、図3を用いて、実施形態に係るエンジン制御部4の一例を説明する。図3は、実施形態に係るエンジン制御部4の一例を示す図である。
エンジン制御部4は印刷部5を制御する。エンジン制御部4は例えば基板である。エンジン制御部4は、第1制御回路40、タイマー41、エンジンROM42、エンジンRAM43(第1記憶部に相当)を含む。第1制御回路40は、タイマー41とエンジンI/F回路44を含む。エンジンI/F回路44は第1制御回路40と別体でもよい。
第1制御回路40はCPUのような集積回路である(エンジンCPU)。タイマー41には、CPU内に設けられた計時回路を用いることができる。なお、タイマー41は第1制御回路40と別体でもよい。例えば、タイマー41はエンジンCPUに外付けされたクロックを数えるカウンター回路でもよい。第1制御回路40は、印刷部5(印刷エンジン)の動作を制御する。第1制御回路40は、エンジンROM42又は記憶部2から第1制御ソフトウェア45、第2制御ソフトウェア46、第3制御ソフトウェア47を読み出す。読み出された各制御ソフトウェアは、エンジンRAM43に記憶される。第1制御ソフトウェア45、第2制御ソフトウェア46、第3制御ソフトウェア47を用いて、第1制御回路40は印刷動作を制御する。
第1制御ソフトウェア45は、印刷部5(給紙部5a、給紙装置7、用紙搬送部5b、画像形成部5c)の動作を制御するためのソフトウェアである。例えば、第1制御ソフトウェア45は、各部分に含まれる制御対象の動作の開始、停止を制御する。第1制御ソフトウェア45は、印刷に用いる各部分の動作タイミングを制御する。第3ソフトウェアは、変更許可データ92を生成するソフトウェアである。変更許可データ92の詳細は後述する。
第2制御ソフトウェア46はエンジンI/F回路44を制御する。第2制御ソフトウェア46は、給紙装置7との通信を制御するソフトウェアである。第2制御ソフトウェア46は、給紙装置7と通信するため物理層(エンジンI/F回路44)を制御するためのソフトウェアである。階層的には、第1制御ソフトウェア45と第3制御ソフトウェア47は、第3制御ソフトウェア47の上位となる。第1制御ソフトウェア45が作成した要求(データ)が第2制御ソフトウェア46に与えられる。エンジン制御部4は、第3制御ソフトウェア47を用いて、データをエンジンI/F回路44から送信する。
タイマー41は時間を測る。タイマー41は監視周期T0を測る。監視周期T0は予め定められる。監視周期T0は、1〜数ミリ秒(例えば、2ms)である。監視周期T0はタイマー41がカウントできる周期のうち、最短の時間としてもよい。タイマー41は監視周期T0を測るごとに、タイマー41は出力レベルを一時的に変化させる。タイマー41の出力は第1制御回路40に入力される。タイマー41は、監視周期T0が経過したことを知らせる周期経過信号を第1制御回路40に入力する。第1制御回路40は、周期経過信号に基づき、現在の監視周期T0が終わったこと、次の監視周期T0が始まったことを認識する。
エンジンI/F回路44は、給紙部5a、用紙搬送部5b、画像形成部5c、給紙装置7と接続される。第1制御回路40は、給紙部5a、用紙搬送部5b、画像形成部5c、給紙装置7の動作を制御するため要求データ(信号)を生成する。第1制御回路40は、生成した要求データをエンジンI/F回路44に送信させる。エンジン制御部4(第1制御回路40)からの指示に基づき、給紙部5a、用紙搬送部5b、画像形成部5c、給紙装置7は動作する。
(給紙装置7)
次に、図4を用いて、実施形態に係る給紙装置7の一例を説明する。図4は、実施形態に係る給紙装置7の一例を示す図である。
給紙装置7は給紙制御部7aを含む。給紙制御部7aは、給紙装置7(オプション装置)を制御する。例えば、給紙制御部7aは制御基板である。給紙制御部7aは、第2制御回路70、給紙ROM76、給紙RAM77を含む。第2制御回路70は、給紙I/F回路78を含む。給紙I/F回路78は第2制御回路70と別体でもよい。
第2制御回路70は、例えば、CPUのような集積回路である。第2制御回路70は、給紙装置7(オプション装置)の動作を制御する。第2制御回路70は、給紙ROM76又は記憶部2から給紙装置7を制御するためのソフトウェアを読み出す。読み出された制御ソフトウェアは、給紙RAM77に記憶される。読み出した制御ソフトウェアを用いて、第2制御回路70は印刷時の給紙動作を制御する。
第2制御回路70(給紙I/F回路78)は、第1制御回路40(エンジンI/F回路44)と通信する。また、第2制御回路70(給紙I/F回路78)は、制御対象と接続される。第2制御回路70の制御対象は、給紙装置7内に設けられた部材である。制御対象には、給紙モーター79、給紙クラッチ710、搬送モーター711、ファンモーター712がある。
給紙モーター79は、オプション給紙ローラー72を回転させるモーターである。給紙モーター79は複数設けられる。1つのオプション給紙ローラー72(用紙カセット71)に対し、給紙モーター79が1つ設けられる。第1制御回路40から受信した制御データに基づき、第2制御回路70は、給紙元に選択された用紙カセット71に対応する給紙モーター79を回転させる。図2に示すように、オプション給紙ローラー72の下流に捌きローラー対7bが設けられる。1つのオプション給紙ローラー72に対し、捌きローラー対7bが1つ設けられる。各捌きローラー対7bは用紙の重送を解消する。捌きローラー対7bの上側のローラーは用紙を下流に送る方向に回転する。捌きローラー対7bの下側のローラーは用紙を用紙カセット71に戻す方向に回転する。給紙モーター79は捌きローラー対7bも回転させる。1つの給紙モーター79は、対応するオプション給紙ローラー72とそれに隣接する捌きローラー対7bを回転させる。
給紙クラッチ710は、オプション給紙ローラー72の回転を一時的に停止させるためのものである。給紙クラッチ710は電磁クラッチである。入力電圧(電流)のレベルにより、連結、開放を切り替えることができる。1つのオプション給紙ローラー72に対し、給紙クラッチ710が1つ設けられる。複数枚の用紙を連続して供給するとき、第1制御回路40から受信した制御データに基づき、第2制御回路70は、給紙しているオプション給紙ローラー72を一時的に停止させる(給紙クラッチ710の開放、対応する給紙モーター79を回転させたまま)。先の用紙が用紙カセット71を抜けた時点で、オプション給紙ローラー72は一時停止する。所定の紙間形成後、第1制御回路40は、オプション給紙ローラー72の回転を再開させる(給紙クラッチ710の連結)。
搬送モーター711は、オプション搬送ローラー対75を回転させるためのモーターである。オプション搬送路74に沿って、複数のオプション搬送ローラー対75が設けられる。そのため、搬送モーター711も複数設けてもよい。給紙装置7から用紙を給紙するとき、第1制御回路40から受信した制御データに基づき、第2制御回路70は、各搬送モーター711を回転させる。これにより、各オプション搬送ローラー対75が回転する。用紙が画像形成部5cに向けて送られる。
ファンモーター712は、給紙装置7に設けられたファンを回転させる。ファンは、例えば、給紙装置7内の温度と温度を調整するために設けられる。ファンとファンモーター712は複数設けてもよい。例えば、給紙装置7から用紙を給紙するとき、第1制御回路40から受信した制御データに基づき、第2制御回路70は、各ファンモーター712を回転させる。これにより、各ファンが回転する。
このように、給紙装置7は複数の制御対象を含む。エンジン制御部4(第1制御回路40)は、制御データ(要求)を第2制御回路70に送信する。制御データは制御対象の動作を制御するためのデータ(信号)である。給紙装置7の第2制御回路70は、各制御対象と通信可能に接続される。第2制御回路70は、第1制御回路40からの制御データ(要求)に基づき、各制御対象の動作を制御する。第1制御回路40は、第2制御回路70とその制御対象を制御するといえる。
第1制御回路40が第2制御回路70に送信する制御データは複数種類ある。制御データは、第1制御データ9a、第2制御データ9b、第3制御データ9cに分類される。第1制御データ9aは、第1対象を制御するための制御データである。第2制御データ9bは、第2対象を制御するための制御データである。第3制御データ9cは、第3対象を制御するための制御データである。給紙装置7に含まれる部材のうち、何れを第1対象にし、何れを第2対象にし、何れを第3対象にするかは、予め定められる。例えば、制御対象のうち、ファンモーター712が第1対象とされる。制御対象のうち、給紙モーター79、給紙クラッチ710、搬送モーター711が第2対象とされる。給紙モーター79、給紙クラッチ710、搬送モーター711のうち、特に高速に制御したい(ON/OFFを高速に切り替えたい)ものが、第3対象とされる。
つまり、第1制御回路40は、第1対象、第2対象、第3対象を制御するためのデータを第2制御回路70に送信する。第2制御回路70は、第1対象、第2対象、及び、第3対象と接続される。第1制御回路40から受信した制御データに基づき、第2制御回路70は、第1対象、第2対象、第3対象の動作を制御する。例えば、第2制御回路70は、第1対象、第2対象、第3対象のON/OFFを制御する。
(第1制御データ9aの送信)
次に、図5を用いて、実施形態に係る第1制御データ9aの送信の一例を説明する。図5は、実施形態に係る第1制御データ9aの送信の一例を示す図である。
第1制御回路40は、第1制御ソフトウェア45に基づき、第1要求データ81を生成する。第1要求データ81は、第1対象を制御するためのデータである。言い換えると、第1制御回路40は、第1対象を制御するデータの送信要求を出す。図5のうち、時点t1は第1要求データ81を生成した(送信要求を出した)時点である。第1制御回路40は、第1要求データ81を第1制御データ9aとして送信する。
第1制御データ9aの送信は、第1通信方式で行われる。第1通信方式は、メールボックスを利用した通信である。第1制御回路40はメールボックスを利用して第1制御データ9aを第2制御回路70に送信する。メールボックス機能は、メモリーに置かれたメッセージを受け渡しして、同期的な通信を行う機能である。メールボックス通信機能は、例えば、Itronのようなソフトウェア(OS)に実装されている。メールボックスを用いてデータを送信するとき、第1制御回路40はメールボックスを作成する。例えば、第1制御回路40は、エンジンRAM43の一部の領域をメールボックスに割り当てる。
第1要求データ81を生成したとき、第1制御回路40は、第1要求データ81をエンジンRAM43のメッセージ保存領域に書き込む。また、第1制御回路40は、メールボックスに第1要求データ81の格納アドレス(ポインタ)を書き込む。以後、第2制御ソフトウェア46に基づき、第1制御回路40は第1制御データ9aの送信を行う。つまり、上位層のソフトウェアが下位層のソフトウェアにデータの送信を要求する。
例えば、第2制御回路70は、データを受信するタイミングでメールボックスのアドレスを確認する。確認があったとき、第1制御回路40は、第1要求データ81を第1制御データ9aとして第2制御回路70(給紙I/F回路78)に送信する。メールボックスを用いた送受信は、第1制御回路40の負荷を比較的抑えられるというメリットがある。
しかし、メールボックスを用いた通信では、一定の手順を踏む(メールボックスへの書込や受信待ちなど)。そのため、第1制御データ9aについては、第1要求データ81の生成から第2制御回路70が実際に第1制御データ9aを受信するまでの時間的間隔が長くなることがある。図5では、第1通信方式での時間的間隔の一例(第1時間間隔T1)を実線矢印で図示している。
プリンターでは、高速に印刷が行われる。制御対象の中には、要求から通信完了までの時間的間隔が長くなると印刷に問題がでるものがある。そこで、第1対象は、制御対象のうち、制御データの多少の遅延が問題とならないものとされる。例えば、各ファンモーター712が第1対象とされる。また、各ファンモーター712の制御データが第1制御データ9aとされる。その他、エンジン制御部4の状態を第2制御回路70(給紙制御部7a)に知らせる通知が第1制御データ9aとされてもよい。一方、第1制御回路40は、時間的間隔が長くなると印刷に問題がでることがある制御対象の制御データを、第2通信方式、又は、第3通信方式を用いて送信する。
(第2制御データ9bの生成と送信)
次に、図6〜図8を用いて、実施形態に係る第2制御データ9bの送信の一例を説明する。図6は、実施形態に係る第2制御データ9bの送信の一例を示す図である。図7、図8は、実施形態に係る第2制御データ9bの生成の一例を示す図である。
プリンターでは、高速に印刷が行われる。制御対象の中には、要求から送信完了までの時間的間隔が長くなると印刷に問題がでるものがある。そこで、第2対象は、制御対象のうち、制御データの送信の遅延が印刷の問題になる場合があるものとされる。例えば、給紙モーター79、給紙クラッチ710、搬送モーター711が第2対象とされる。また、給紙モーター79、給紙クラッチ710、搬送モーター711の制御データが第2制御データ9bとされる。
第1制御回路40は、第2通信方式で、第2制御データ9bを第2制御回路70に送信する。第2制御データ9bは、第2対象を制御するためのデータである。第2制御データ9bの送信は、監視周期T0に基づき行われる。タイマー41が監視周期T0を測る。監視周期T0は基準間隔よりも短くなるように設定される。基準間隔は第1要求データ81の生成から第1制御データ9aの第2制御回路70への送信が完了するまで(実際に第2制御回路70が第1制御データ9aを受信するまで)の時間的間隔の目安の時間(経験的な平均時間)である。例えば、基準間隔は実験により定めることができる。複数回、第1要求データ81の生成から送信完了までの時間を測る。測った時間の平均値を基準間隔とすることができる。
第1制御回路40は、第1制御ソフトウェア45に基づき、第2要求データ82を生成する。言い換えると、第1制御回路40は第2対象を制御するためのデータの送信要求を出す。図6のうち、時点t2、t3が第2要求データ82を生成した時点である。第1制御回路40は生成した第2要求データ82をレジスタ48(第2記憶部に相当)に記憶させる。レジスタ48は第1制御回路40内に設けられる。レジスタ48を用いるので、高速に読み書きを行うことができる。
監視周期T0が新たに始まったとき、第2制御回路70は、1つ前の監視周期T0の間に第2記憶部に記憶された第2要求データ82に基づいて第2制御データ9bを生成するか否かを判断する。第2制御データ9bを生成すると判断したとき、第1制御回路40は第2制御データ9bを生成する。生成後、第1制御回路40は第2制御データ9bを第2制御回路70に送信する。
ここで、第2対象は複数ある。第1制御回路40は各第2対象を制御するための第2要求データ82を生成する。第2要求データ82はビット列である。ビット列では、各第2対象の動作のON/OFFの要求を1、0で表現するビットが並べられる。図7は、第2要求データ82の一例を示す。
図7の第2要求データ82は、16ビット(2バイト)のデータである。第2要求データ82のビット数は、第2対象の数以上である。図7に示す第2要求データ82によれば、16個の第2対象(モーターやクラッチ)のON/OFFを制御できる。何番目のビットがどの第2対象を制御するビットであるかは予め定められる。言い換えると、各ビットに対応する第2対象が予め定められる。図7の第2要求データ82では、「1」がON、「0」がOFFを示す。第2対象がモーターのとき、ビット「1」は回転、「0」は停止を示す。第2対象がクラッチのとき、ビット「1」は連結、「0」は開放を示す。
図7に示すように、第2制御回路70は実績データ91もレジスタ48に記憶させる。実績データ91は、前回送信した第2制御データ9bである。実績データ91(第2制御データ9b)と第2要求データ82のビット数は同じである。
さらに、第1制御回路40は、第3制御ソフトウェア47に基づき、変更許可データ92を生成する。第3制御ソフトウェア47は、モーターやクラッチのON/OFFのタイミングを調整する。例えば、同時にOFFすべきモーター同士が同時にOFFされるように、変更許可データ92を生成する。また、各モーターを順番にONする場合やOFFする場合、第3制御ソフトウェア47に基づき、第1制御回路40は、所定間隔ごとに、変更許可データ92のビットを1ビット又は数ビットずつ変化させる。
変更許可データ92は、第2要求データ82、実績データ91と同じビット数である。第2制御回路70は、現時点での動作変更を許可する第2対象に対応するビットを許可値とする。第2制御回路70は、現時点で動作変更を許可しない第2対象に対応するビットを不許可値とする。ビットの位置と第2対象との関係は、第2要求データ82と同じである。第2要求データ82の1番目のビットがモーターAと対応している場合、変更許可データ92の1番目のビットは、モーターAの動作変更の許可、不許可を示す。図7に変更許可データ92の一例を示す。図7の変更許可データ92のうち、「1」は許可値(変更許可)を示し、「0」は不許可値(変更不可)を示す。
1つ前の監視周期T0中に第2要求データ82が生成されたとき、第1制御回路40は、第2要求データ82、実績データ91、変更許可データ92に基づき、第2制御データ9bの生成、送信が必要か否かを判定する。必要と判定したとき、第1制御回路40は、第2要求データ82、実績データ91、変更許可データ92に基づき、第2制御データ9bを生成する。
次に、図8を用いて、監視周期T0が新たに始まったときの処理の流れを説明する。例えば、図8のスタートは、第1制御回路40がタイマー41の出力に基づき、新たな監視周期T0の開始を認識した時点である。まず、第1制御回路40は、1つ前の監視周期T0中に、新たな第2要求データ82がレジスタ48に記憶されたか否かを確認する(ステップ♯1)。無い場合(ステップ♯1のNo)、第1制御回路40は、第2制御データ9bを送信しないと判定する(ステップ♯2)。そして、本フローは終了する(エンド)。
新たな第2要求データ82がレジスタ48に記憶されている場合(ステップ♯1のYes)、第1制御回路40は、変更許可データ92に許可値が含まれているか否かを確認する(ステップ♯3)。言い換えると、第1制御回路40は、変更許可データ92が全て不許可値か否かを確認する。許可値が含まれていない場合(ステップ♯3のNo)、フローはステップ♯2に移行する。
許可値が含まれている場合(ステップ♯3のYes)、第1制御回路40は、第2要求データ82と実績データ91に差があるか否かを確認する(ステップ♯4)。差が無い場合(ステップ♯4のNo)、第1制御回路40はステップ♯2を行う。そして、本フローは終了する(エンド)。
差がある場合(ステップ♯4のYes)、第1制御回路40は、変更許可データ92で許可値のビットの位置において、第2要求データ82と実績データ91が異なっているか否かを確認する(ステップ♯5)。許可値のビットの位置で両データに差が無い場合(ステップ♯5のNo)、第1制御回路40はステップ♯2を行う。そして、本フローは終了する(エンド)。第2要求データ82と実績データ91が異なっていても、変更が許可されていない場合、第1制御回路40は、第2制御データ9bの生成、送信を行わない。
許可値のビットの位置で両データに差がある場合(ステップ♯5のYes)、第1制御回路40は、第2制御データ9bを新たに生成する(ステップ♯6)。そして、第1制御回路40は、生成した第2制御データ9bを第2制御回路70に送信する(ステップ♯7)。次に、第1制御回路40は、実績データ91を更新する(ステップ♯8)。そして、本フローは終了する。
図7の例では、第1要求データ81と実績データ91に差がある。第2制御データ9bを生成するとき、第1制御回路40は、変更許可データ92のうち、不許可値のビットについては、実績データ91を用いる。図7での黒塗白文字のビットと破線で囲われたビット(1〜7番目、9〜14番目、16番目のビット)については、第1制御回路40は、実績データ91をコピーして第2制御データ9bを生成する。
一方、第1制御回路40は、第2要求データ82と実績データ91で値が異なるビットであって、変更許可データ92で許可値となっているビットについては、第2要求データ82を用いる。図7において、実線の枠で囲われるビット(8番目と15番目)は、第2要求データ82のビット値が用いられている。
このように、要求データと実績データ91に違いがあるとき、第1制御回路40は、変更許可データ92において許可値のビットの位置に要求データのビットの値を適用し、変更許可データ92において非許可値のビットの位置には実績データ91のビットの値を適用した第2制御データ9bを生成する。第1制御回路40は監視周期T0の終わり(新たな監視周期T0の始まり)をトリガーとして、第2制御データ9bを第2制御回路70に送信する。監視周期T0を基準に第2制御データ9bが生成される。図6では監視周期T0の境目を破線で図示している。要求から制御データの送信完了までの時間的間隔は、監視時間未満となる。時間的間隔が一定以上長くならない。メールボックスによる通信では、時間的間隔が監視時間以上になる(なることが多い)。図6では、第1時間間隔T1の一例を実線矢印で図示している。メールボックスを用いるよりも、高速に第2制御データ9bを送信することができる。要求生成後、速やかに第2対象の状態を変化させることができる。第2通信方式によれば、第2対象の動作(反応)の大きな遅れが生じない。
(第3制御データ9cの送信)
次に、図9、図10を用いて、実施形態に係る第3制御データ9cの送信の一例を説明する。図9、図10は実施形態に係る第3制御データ9cの送信の一例を示す図である。
上述のように、給紙モーター79、給紙クラッチ710、搬送モーター711のうち、特に高速に制御したい(ON/OFFを高速に切り替えたい)ものが、第3対象とされる。第1制御回路40は、制御ソフトウェアを用いて、第3対象を制御するための第3要求データを生成する。第1制御回路40は、第3対象を制御するための第3制御データ9cを第3通信方式で送信する。第1制御回路40は、第3要求データを第3制御データ9cとして送信する。
第3制御データ9cを生成したとき、第1制御回路40は、直ちに第3制御データ9cを第2制御回路70に送信する。第2制御回路70は、受信した第3制御データ9cに基づき第3対象を制御する。図9のうち、t4、t5が第3要求データを生成した時点である。図10のうち、t6が第3要求データを生成した時点である。図9、図10に示すように、第3要求データを生成すると、第1制御回路40は、直接的に(同時に)第3制御データ9cを送信する。このような直接的な送信は、第1通信方式、第2通信方式よりも、第1制御回路40の処理負荷が大きくなることがある。しかし、一部の制御対象(第3対象)に対してのみ直接的な送信を行う。第1制御回路40の処理負荷が大きくなりすぎることはない。
更に、第1制御回路40は、第3制御データ9cとともに、現在の監視周期T0中にレジスタ48に新たに記憶された第2要求データ82に基づく第2制御データ9bを第2制御回路70に送信してもよい。図10のうち、時点t7は、第2要求データ9bが新たに生成された時点である。図10では、時点t7と同じ監視周期T0中に、第3要求データを生成している。この場合、第3要求データを生成したとき、第1制御回路40は、現在の監視周期T0中に新たに第2要求データ82を生成したか否か(レジスタ48に記憶させたか否か)を確認する。
現在の監視周期T0中に新たに第2要求データ82を生成したとき、第1制御回路40は、図8のフローチャートを実行する。この場合、図8のフローチャートのうち、ステップ♯1はスキップされる。第2制御データ9bを送信しないと判定したとき、第1制御回路40は、第3制御データ9cのみを送信する。第2制御データ9bを新たに生成したとき、第1制御回路40は、第3制御データ9cの次に、新たに生成した第2制御データ9bを送信する。次の監視周期T0になったとき、第1制御回路40は、前の監視周期T0で判定済の第2要求データ82については、図8のフローチャートを実行しない。
このようにして、実施形態に係る画像形成装置100は、タイマー41、第1制御回路40、第2制御回路70、第1記憶部(エンジンRAM43)、第2記憶部(レジスタ48)、を含む。タイマー41は予め定められた監視周期T0を測る。第2制御回路70は第1制御回路40と通信する。第2制御回路70は第1対象及び第2対象と接続される。第2制御回路70は第1対象と第2対象の動作を制御する。第1記憶部は第1対象を制御するための第1要求データ81を記憶する。第2記憶部は第2対象を制御するための第2要求データ82を記憶する。第1制御回路40は、制御ソフトウェアに基づき第1要求データ81を生成する。第1制御回路40は、メールボックスを利用して、第1要求データ81を第1制御データ9aとして第2制御回路70に送信する。第2制御回路70は、受信した第1制御データ9aに基づき第1対象を制御する。また、第1制御回路40は、制御ソフトウェアに基づき第2対象を制御するための第2要求データ82を生成する。第1制御回路40は、生成した第2要求データ82を第2記憶部に記憶させる。監視周期T0が新たに始まったとき、第1制御回路40は、1つ前の監視周期T0の間に第2記憶部に記憶された第2要求データ82に基づき第2制御データ9bを生成する。第1制御回路40は、生成した第2制御データ9bを第2制御回路70に送信する。第2制御回路70は、受信した第2制御データ9bに基づき第2対象を制御する。監視周期T0は基準間隔よりも短くなるように設定される。基準間隔は第1要求データ81の生成から実際に第1制御データ9aの第2制御回路70への送信が完了するまでの(実際に第2制御回路70が第1制御データ9aを受信するまでの)時間的間隔の目安の時間である。
この構成によれば、メールボックスを利用して、制御回路間で第1制御データ9a(第1対象を制御するためのデータ)の送受信を行うことができる。また、制御回路間では、監視周期T0に基づく第2制御データ9bの送受信を行うこともできる。特定の制御対象(第2対象)については、要求データの生成から送信完了までの時間的間隔を監視周期T0以下とすることができる。第2制御データ9bの送信遅延を一定以下にすることができる。つまり、高速に第2制御データ9bを送受信することができる。印刷に影響が出ないように、第2対象を高速に制御することができる。制御対象、送信するデータに応じて、送信方式を切り替えることができる。制御対象、送信するデータに応じて、適切な送信方式でデータを送信することができる。また、メールボックスに基づく通信と、監視周期T0に基づく通信を併用するので、制御回路の処理負荷が大きくなりすぎない。
第2制御回路70は、第3対象と接続される。第2制御回路70は第3対象の動作を制御する。第1制御回路40は、制御ソフトウェアを用いて、第3対象を制御するための第3要求データを生成する。第3要求データを生成したとき、第1制御回路40は、直ちに第3要求データを第3制御データ9cとして第2制御回路70に送信する。第2制御回路70は、受信した第3制御データ9cに基づき第3対象を制御する。第3対象を制御するためのデータ(第3制御データ9c)を高速に送信することができる。第2制御データ9bを送信するときよりも、第3制御用データの送信要求から送信完了までの時間的間隔を短くすることができる。即時に伝達すべきデータを直ちに第2制御回路70に伝えることができる。第3対象を高速に制御することができる。制御対象、送信するデータに応じて、送信方式を切り替えることができる。
第1制御回路40は、第3制御データ9cとともに、現在の監視周期T0中に第2記憶部に新たに記憶された第2要求データ82に基づく第2制御データ9bを第2制御回路70に送信する。第3制御データ9cと同時に第2制御データ9bを第2制御回路70に送信することができる。ジョブに問題が生じないように、第2対象と第3対象の動作を速やかに制御することができる。
第2対象は複数とできる。第1制御回路40は、各第2対象の動作のON/OFFの要求を1、0で表現するビットを並べたビット列を第2要求データ82として生成する。ビット列において、何番目のビットがどの第2対象に対応するかは、予め定められている。また、第1制御回路40は、前回送信した第2制御データ9bを実績データ91として第2記憶部に記憶させる。第1制御回路40は、制御ソフトウェアに基づき、実績データ91と同じビット数であり、現時点での動作変更を許可する第2対象に対応するビットを許可値とし、現時点で動作変更を許可しない第2対象に対応するビットを不許可値とした変更許可データ92を生成する。第2制御データ9bを生成しようとする場合、第1制御回路40は、変更許可データ92に許可値のビットがあるか否かを確認する。変更許可データ92に許可値のビットがあるとき、第1制御回路40は、第2要求データ82と実績データ91に違いがあるかを確認する。第2要求データ82と実績データ91に違いがあるとき、第1制御回路40は、変更許可データ92において許可値のビットの位置に第2要求データ82のビットの値を適用し、変更許可データ92において不許可値のビットの位置には実績データ91のビットの値を適用した第2制御データ9bを生成する。第2対象の動作を制御するためのデータを少ないビット数で一括送信することができる。また、制御ソフトウェアが、動作を変更してよい(要求を反映させてよい)と判定している第2対象の動作のみを切り替えることができる。変更許可データ92を用いて、個々の第2対象の動作の切り替えタイミングを容易に調整することができる。
第2制御データ9bを生成しようとする場合、変更許可データ92に許可値のビットがないとき、又は、第2要求データ82と実績データ91に違いがないとき、第1制御回路40は、第2制御データ9bを生成せず、第2制御データ9bを新たに送信しない。動作を変更すべき第2対象がない場合、第2制御データ9bの送信をスキップすることができる。監視周期T0ごとに必ず第2制御データ9bを送信する訳ではない。必要な場合にのみ、第2制御データ9bを第2制御回路70に送信することができる。第1制御回路40と第2制御回路70の処理負荷を減らすことができる。
画像形成装置100は、本体部分101に印刷を行う印刷部5を含む。本体部分101にオプション装置が取り付けられる。第1制御回路40は、本体部分101に設けられる。第2制御回路70は、オプション装置(給紙装置7)に設けられる。第1対象と第2対象はオプション装置に含まれる。本体装置に設けられた第1制御回路40が、オプション装置に設けられた第2制御回路70に動作指示を与えることができる。第1制御回路40は、オプション装置の動作を制御することができる。
第2対象は用紙を送るための回転体を回転させるモーター(給紙モーター79、搬送モーター711)と、用紙を送るための回転体の回転、停止を制御するクラッチ(給紙クラッチ710)の何れか一方、又は、両方である。第2要求データ82及び第2制御データ9bは、モーターとクラッチの何れか一方、又は、両方を制御するためのデータである。モーター、クラッチを制御するためのデータを速やかに第2制御回路70に送信できる。印刷の用紙位置のずれか大きくなることを防ぐことができる。モーター、クラッチを速やかに動作させることができる。モーター、クラッチを速やかに停止させることもできる。
本発明の実施形態を説明したが、本発明の範囲はこれに限定されるものではなく、発明の主旨を逸脱しない範囲で種々の変更を加えて実施することができる。