(57)【特許請求の範囲】
【請求項１】
ＰＣ本体ユニットと、所定数のＩ／Ｏユニットとを備えたプログラマブルコントローラにおいて、
上記Ｉ／Ｏユニットは、制御対象に設けられた入力／出力機器の状態等を示すデバイス情報を記憶する第１記憶手段と、上記第１記憶手段における上記デバイス情報の記憶アドレスが記述された第１シーケンスプログラムを繰り返し実行することにより上記第１記憶手段を介して上記制御対象を制御する第１制御手段と、上記第１シーケンスプログラムにその記憶アドレスが記述されている上記デバイス情報のうち上記ＰＣ本体ユニット間で授受されるインターフェースデバイス情報の記憶アドレスが記述されたインターフェースプログラムを記憶する第２記憶手段とを有し、
上記ＰＣ本体ユニットは、第３記憶手段と、上記インターフェースデバイス情報の記憶アドレスについて上記第１記憶手段における記憶アドレスと上記第３記憶手段における記憶アドレスとの対応を示す第１テーブルを作成し、上記インターフェースプログラムにおける上記インターフェースデバイス情報の記憶アドレスを上記ＰＣ本体ユニットにおけるアドレスに変換し、変換された上記インターフェースプログラムと自身のシーケンスプログラムとを有する第２シーケンスプログラムを繰り返し実行し上記自身のシーケンスプログラムによる所定の制御に加えて上記インターフェースプログラムによる上記Ｉ／Ｏユニットの制御を上記第３記憶手段を介して行う第２制御手段とを有し、
上記第１テーブルにもとづき上記インターフェースデバイス情報について上記第１、第３記憶手段の記憶内容が同一になるように上記第１、第３記憶手段の記憶内容がリフレッシュされ、電源投入時等に上記インターフェースプログラムが上記Ｉ／Ｏユニットから上記ＰＣ本体ユニットに転送されることを特徴とするプログラマブルコントローラ。
【請求項２】
Ｉ／Ｏユニットは自身のユニットの名称を記憶する第４記憶手段を有し、各スロットに挿入されている上記Ｉ／Ｏユニットにおける上記第４記憶手段の記憶内容が電源投入時等に読み出され上記名称と上記Ｉ／Ｏユニットが挿入されているスロットの番号との対応を示す第２テーブルが第２制御手段により作成され、上記第２制御手段は上記第２テーブルにより上記名称に対応するスロット番号を認知することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
制御対象に設けられた入力／出力機器の状態等を示すデバイス情報の第１記憶手段における記憶アドレスが記述された第１シーケンスプログラムを第１制御手段が繰り返し実行することにより上記第１記憶手段を介して上記制御対象を制御するＩ／ＯユニットからＰＣ本体ユニットに、上記デバイス情報のうち上記ＰＣ本体ユニット間で授受されるインターフェースデバイス情報の上記第１記憶手段における記憶アドレスが記述されたインターフェースプログラムが転送されるとともに、上記インターフェースデバイス情報について上記Ｉ／Ｏユニットの上記第１記憶手段における記憶アドレスと上記ＰＣ本体ユニットの上記第３記憶手段における記憶アドレスとの対応を示す第１テーブルが第２制御手段により作成され、上記インターフェースプログラムにおける上記インターフェースデバイス情報の上記Ｉ／Ｏユニットにおける記憶アドレスが上記第２制御手段により上記ＰＣ本体ユニットにおける記憶アドレスに変換される段階と、
変換された上記インターフェースプログラムと自身のシーケンスプログラムとを有する第２シーケンスプログラムが上記第２制御手段により実行され、上記第１テーブルにもとづき上記インターフェースデバイス情報について上記第１、第３記憶手段の記憶内容が同一になるように上記第１、第３記憶手段の記憶内容がリフレッシュされるとともに、上記自身のシーケンスプログラムによる所定の制御に加えて上記インターフェースプログラムによる上記Ｉ／Ｏユニットの制御が上記第３記憶手段を介して行われる段階と、を有することを特徴とするプログラマブルコントローラの制御方法。
【請求項４】
Ｉ／Ｏユニットの第４記憶手段に自身のユニットの名称が記憶される段階と、
各スロットに挿入されている上記Ｉ／Ｏユニットにおける上記第４記憶手段の記憶内容が読み出され、上記名称と上記Ｉ／Ｏユニットが挿入されているスロットの番号との対応を示す第２テーブルが第２制御手段により作成される段階と、
上記第２テーブルにもとづき上記名称に対応するスロット番号が上記第２制御手段により認知される段階と、を有することを特徴とする請求項３記載のプログラマブルコントローラの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、高速な処理が可能で、シーケンスプログラムの作成や他システムへの流用、システムの変更等が容易なプログラマブルコントローラおよびその制御方法に関するものである。
【０００２】
【従来の技術】
図１３は、特開昭６４−４４５０９号公報に記載されている、パターンテーブルを利用した高速Ｉ／Ｏユニットのシステム構成図である。図において、１８はＩ／Ｏバス、１９はＥＰＲＯＭ、２０は入力回路、２１は出力回路である。
この従来システムにおいては、外部のアブソリュートエンコーダ（図示せず）からの信号を入力回路２０に受けて、これをＥＰＲＯＭ１９のメモリに格納されている変換テーブルに基づき変換し、変換結果を出力回路２１を介して出力し、外部の機器（図示せず）を高速に制御する。そして、必要であれば変換結果がＩ／Ｏバス１８を通じてＰＣ制御部に送られる。このようにしてアブソリュートエンコーダからの信号の処理が高速に行われる。
【０００３】
図１４は、別の従来システムを示す構成図であり、ベルトコンベアを前進後退させる従来システムを示している。図において、２２はＣＰＵユニット、２８は前進運転接点、２９はモータ、３０は後進運転接点、３１はベルトコンベア、３２は前進端センサ、３３は後進端センサである。
出力機器である前進運転接点２８および後進運転接点３０、入力機器である前進端センサ３２および後進端センサ３３のシーケンスプログラム上でのデバイス名は、それぞれＹ５０、Ｙ５１、Ｘ０、Ｘ１であり、デバイス情報、例えば、ＯＮ／ＯＦＦ情報はＣＰＵユニット２２内のデバイスメモリ２３２において、それぞれＹ５０、Ｙ５１、Ｘ０、Ｘ１により指定されるアドレスに格納されている。
図１５は、プログラマブルコントローラ（以後、ＰＣと称する）に設けられているスロットにＣＰＵユニット２２等が装着された様子を示す図である。図において、１７は入力点数が１６点ある入力ユニット、３４は出力点数が１６点ある出力ユニットである。
【０００４】
図１６は、ラダー図で表されたシーケンスプログラムを示す図である。このシーケンスプログラムは、ＣＰＵユニット２２により実行される。
図１６において、ステップＳ１５１では、Ｔ０がＯＮになっていなければ通常処理を行うものとしてＰ０（ステップＳ１５４）へジャンプする。Ｔ０はサイクルタイムオーバーがあった場合においてはセットされている。
ステップＳ１５２では前回のスキャンですでにＭ０がＯＮになっていればＣＨＫ命令が再度実行されないようにステップＳ１５４にジャンプする。
ステップＳ１５３においては、前後進動作時においてサイクルタイムオーバーが発生していればＣＨＫ命令が実行され、動作異常検出回路の故障診断を行い故障があればＭ０がセットされる。
ステップＳ１５４では、コンベア前進指令（Ｘ４）のＯＮ等を条件に前進運転するとともに、故障検出に使用するＹ０（このＰＣにおいては、前進端センサの接点番号と同一接点番号の出力デバイスに設定される）をＯＮする。
ステップＳ１５５では、コンベア後退指令（Ｘ５）がＯＮであること等を条件に後進運転するとともに、Ｙ０をＯＦＦにする。
ステップＳ１５６では、サイクルタイムチェックタイマを動作させ、設定時間内に前進端か後進端に到達しない場合はエラーとし、Ｔ０をＯＮにする。
以上の動作によりＹ０は前進運転中はＯＮ、後進運転中はＯＦＦになる。また、ＣＨＫ命令の実行により動作異常検出回路の故障チェックを行い、故障を検出するとデバイスＭ０をＯＮし、デバイスＤ０に故障番号をＢＣＤ値で格納する。ステップＳ１５３の接点（Ｘ０）はＣＨＫ命令の実行を制御するものではなく、チェック条件を設定する接点である。なお、このＰＣにおいては、ＣＨＫ命令はポインタＰ２５４のステップで記述するように定められている。
【０００５】
このような従来のＰＣにおいては、Ｉ／Ｏ点数の割付けや、ユニットの配置をすべて決定した上で、そのＩ／Ｏ割付けが反映されたシーケンスプログラムを作成する必要があり、Ｉ／Ｏ割付けが変更された場合にはシーケンスプログラムのデバイス名を変更する必要があった。
【０００６】
図１７は、複数のＰＣがネットワーク接続された従来のネットワークシステムの接続図である。図において、２３１はＣＰＵユニット２２により実行されるシーケンスプログラムが格納されるシーケンスプログラムメモリ、２３２はデバイスメモリ、２４はネットワークユニット、２５はＩ／Ｏユニット、２６はＩ／Ｏバスである。
このネットワークシステムにおいては、複数のＰＣがそれぞれネットワークユニット２４を介して同軸バス２７により接続され、ＰＣ相互間でデータをやりとりが行われるように構成され、それぞれのＰＣにおいては、ＣＰＵユニット２２がＩ／Ｏバス２６を介して各Ｉ／Ｏユニット２５に指令を与えるように構成されている。そして、それぞれのＰＣは共用デバイス（ＰＣ相互間でアクセスする必要のあるデバイス）を記憶するエリアがデバイスメモリ２３２に設けられ、このデバイスメモリ２３２の記憶内容は定期的にリフレッシュされる。
【０００７】
【発明が解決しようとする課題】
図１３に示すような従来システムにおいては、例えば、タイマやカウンタを使用した高速制御、すなわち、以前の状態に依存する高速制御（タイマのオンオフ状態やカウンタのカウント状態により処理内容を変える高速制御）が必要な場合においては対応が困難であり、自由度、汎用性、あるいは、プログラミングの容易性等の点で問題があった。また、高速処理できる対象が特定の機能に限定されるという問題点があった。
【０００８】
また、図１４に示す従来システムにおいては、ＣＰＵユニット２２が実行するシーケンスプログラム上でＩ／Ｏユニット２５の行う処理がすべて記述されるので、Ｉ／Ｏユニット２５が行う処理に必要なデバイス名をすべて適切に定めた上でシーケンスプログラムを作成する必要があった。また、他のシステムからシーケンスプログラムを流用する際には、シーケンスプログラム上のデバイス名を自システムにあわせて書き換える必要があるという問題点があった。
また、ＣＰＵユニット２２が実行するシーケンスプログラムが長大化し、ＰＣの応答速度が阻害されるという問題点があった。
【０００９】
この発明は、上述のような問題点を解決するためになされたものであり、ＣＰＵユニットのスキャンタイムの増大化を防止しシステム全体のスループットを向上させるとともに、Ｉ／Ｏユニットにおける処理速度や応答速度の低下を防止することを目的とする。
【００１０】
また、シーケンスプログラムの作成、システムの変更、シーケンスプログラムの流用等を容易化することを目的とする。
【００１１】
【課題を解決するための手段】
この発明に係るプログラマブルコントローラは、ＰＣ本体ユニットと、所定数のＩ／Ｏユニットとを備えたプログラマブルコントローラにおいて、
Ｉ／Ｏユニットは、制御対象に設けられた入力／出力機器の状態等を示すデバイス情報を記憶する第１記憶手段と、第１記憶手段におけるデバイス情報の記憶アドレスが記述された第１シーケンスプログラムを繰り返し実行することにより第１記憶手段を介して制御対象を制御する第１制御手段と、第１シーケンスプログラムにその記憶アドレスが記述されているデバイス情報のうちＰＣ本体ユニット間で授受されるインターフェースデバイス情報の記憶アドレスが記述されたインターフェースプログラムを記憶する第２記憶手段とを有し、
ＰＣ本体ユニットは、第３記憶手段と、インターフェースデバイス情報の記憶アドレスについて第１記憶手段における記憶アドレスと第３記憶手段における記憶アドレスとの対応を示す第１テーブルを作成し、インターフェースプログラムにおけるインターフェースデバイス情報の記憶アドレスをＰＣ本体ユニットにおけるアドレスに変換し、変換されたインターフェースプログラムと自身のシーケンスプログラムとを有する第２シーケンスプログラムを繰り返し実行し自身のシーケンスプログラムによる所定の制御に加えてインターフェースプログラムによるＩ／Ｏユニットの制御を上記第３記憶手段を介して行う第２制御手段とを有し、
第１テーブルにもとづきインターフェースデバイス情報について第１、第３記憶手段の記憶内容が同一になるように第１、第３記憶手段の記憶内容がリフレッシュされ、電源投入時等にインターフェースプログラムがＩ／ＯユニットからＰＣ本体ユニットに転送されるようにしたものである。
【００１２】
また、Ｉ／Ｏユニットは自身のユニットの名称を記憶する第４記憶手段を有し、各スロットに挿入されているＩ／Ｏユニットにおける第４記憶手段の記憶内容が電源投入時等に読み出され名称とＩ／Ｏユニットが挿入されているスロットの番号との対応を示す第２テーブルが第２制御手段により作成され、第２制御手段は第２テーブルにより名称に対応するスロット番号を認知するようにしたものである。
【００１３】
この発明に係るプログラマブルコントローラの制御方法は、制御対象に設けられた入力／出力機器の状態等を示すデバイス情報の第１記憶手段における記憶アドレスが記述された第１シーケンスプログラムを第１制御手段が繰り返し実行することにより第１記憶手段を介して制御対象を制御するＩ／ＯユニットからＰＣ本体ユニットに、デバイス情報のうちＰＣ本体ユニット間で授受されるインターフェースデバイス情報の第１記憶手段における記憶アドレスが記述されたインターフェースプログラムが転送されるとともに、インターフェースデバイス情報についてＩ／Ｏユニットの第１記憶手段における記憶アドレスとＰＣ本体ユニットの第３記憶手段における記憶アドレスとの対応を示す第１テーブルが第２制御手段により作成され、インターフェースプログラムにおけるインターフェースデバイス情報のＩ／Ｏユニットにおける記憶アドレスが第２制御手段によりＰＣ本体ユニットにおける記憶アドレスに変換される段階と、
変換されたインターフェースプログラムと自身のシーケンスプログラムとを有する第２シーケンスプログラムが第２制御手段により実行され、第１テーブルにもとづきインターフェースデバイス情報について第１、第３記憶手段の記憶内容が同一になるように第１、第３記憶手段の記憶内容がリフレッシュされるとともに、自身のシーケンスプログラムによる所定の制御に加えてインターフェースプログラムによるＩ／Ｏユニットの制御が第３記憶手段を介して行われる段階と、を有するようにしたものである。
【００１４】
また、Ｉ／Ｏユニットの第４記憶手段に自身のユニットの名称が記憶される段階と、
各スロットに挿入されているＩ／Ｏユニットにおける第４記憶手段の記憶内容が読み出され、名称とＩ／Ｏユニットが挿入されているスロットの番号との対応を示す第２テーブルが第２制御手段により作成される段階と、
第２テーブルにもとづき名称に対応するスロット番号が第２制御手段により認知される段階と、を有するようにしたものである。
【００１５】
【発明の実施の形態】
実施の形態１．
図１は、本発明の一例の実施の形態によるＩ／Ｏユニットのブロック構成図である。なお、このＩ／ＯユニットはＰＣに設けられたスロットに装着されている。
図において、１はＩ／Ｏバス、８はＩ／Ｏユニット、２０１はＩ／Ｏユニット８内のシーケンスプログラムメモリ（図中ではＳＰメモリと表記）であり、第１シーケンスプログラム、例えば、Ｉ／Ｏユニット８により実行されるシーケンスプログラムが格納される。２０２はＩ／Ｏユニット８内の第２記憶手段、例えば、インターフェースシーケンスプログラムメモリ（図中ではＩ／Ｆ・ＳＰメモリと表記）であり、ＣＰＵユニット６に転送するインターフェースシーケンスプログラムが格納される。２０３はＩ／Ｏユニット８内に設けられている第１記憶手段、例えば、デバイスメモリである。３は第１制御手段、例えば、制御装置である。４は入力回路、５は出力回路である。制御装置３はシーケンスプログラムメモリ２０１に格納されているシーケンスプログラムを繰り返し実行する。このＩ／Ｏユニット８とＣＰＵユニット６との信号授受はＩ／Ｏバス１を経由して行われる。
【００１６】
図２は、本発明の実施の形態１によるＰＣ本体ユニット、例えば、ＣＰＵユニットのブロック構成図である。
図において、６はＣＰＵユニット、７０１はＣＰＵユニット６内のシーケンスプログラムメモリであり、ＣＰＵユニット６が実行するシーケンスプログラムが格納される。７０２は第３記憶手段、例えば、ＣＰＵユニット６内のデバイスメモリである。７０３はスクラッチメモリ、７０４は第２制御手段、例えば、制御装置である。
図３は、ＣＰＵユニット６と複数のＩ／Ｏユニット８とがＩ／Ｏバス１により接続されたシステムのブロック構成図である。
【００１７】
次に、図３に示すシステムの概要について説明する。このシステムにおいては、始めにインターフェースプログラム、例えば、インターフェースシーケンスプログラムがＩ／Ｏユニット８のインターフェースシーケンスプログラムメモリ２０２から読み出され、ＣＰＵユニット６に送られる。そして、このインターフェースシーケンスプログラムに記述されているデバイス番号（Ｉ／Ｏユニット８上でのデバイス番号）はＣＰＵユニット６上でのデバイス番号に変換される。この変換されたインターフェースシーケンスプログラムはＣＰＵユニット６のシーケンスプログラムに追加され、ＣＰＵユニット６のシーケンスプログラムの一部として実行される。
Ｉ／Ｏユニット８を１つ部品とするため、Ｉ／Ｏユニット８のインターフェースシーケンスプログラムメモリ２０２に格納されているインターフェースシーケンスプログラムにおけるデバイス番号は固定であり、このインターフェースシーケンスプログラムがＣＰＵユニット６にローディングされる時に、後述するようにＣＰＵユニット６におけるデバイス番号に自動的に変換される。
このように、ローディング時においてデバイス番号が変換されるため、シーケンスプログラムの実行時には変換する必要がなく、Ｉ／Ｏユニット８へデバイスのＯＮ／ＯＦＦ指令を送る際等における処理速度の低下が防止される。
【００１８】
図４は、電源投入時等において、Ｉ／Ｏユニット８のメモリに格納されているインターフェースシーケンスプログラムをＣＰＵユニット６が読み出す際の、すなわち、ローデイングの際の動作を示すフロー図である。
ローディング時におけるデバイス番号の変換は、ＣＰＵユニット６が当該Ｉ／Ｏユニット８のスロット番号より若いスロット番号の総てのスロットの占有点数の合計点数（スロットの占有点数はユニットが装着されていればそのユニットの占有点数とし、空きスロットであれば１６点とする）と、当該Ｉ／Ｏユニット８におけるデバイス番号と、を加算することにより行われる。
例えば、スロット０に１６点占有するユニットが装着されている状態において、Ｉ／Ｏユニット８がスロット１に挿入される場合には、このＩ／Ｏユニット８のデバイス番号０のデバイスは、ＣＰＵユニット６におけるデバイス番号は１０になる。
【００１９】
次に、この変換動作の詳細について図４により説明する。ステップＳ３０１においては、ワーク変数ｕ＿ｎｏ（スロット番号）およびｄ＿ｎｏ（デバイス名における数値部分）を初期化する。
ステップＳ３０２においては、ｕ＿ｎｏがＰＣが装着できる最大のユニット数以上であるか否かを判定し、以上でなければステップＳ３０３に進み、以上であれば終了する。
ステップＳ３０３では、ｕ＿ｎｏ番目のスロットに装着されているユニットのカード情報（自ユニットの名称、例えば、ユニット名、スロット番号、ユニットのタイプ、占有点数等からなる情報）を当該ユニットの第４記憶手段、例えば、カード情報メモリから読み出し、ＣＰＵユニット６内の第２テーブル、例えば、スロットテーブル１０にこのカード情報を格納する。
ステップＳ３０４では当該スロットにユニットが実際に装着されているか否か判定し、装着されていなければステップＳ３０８に進み、装着されていればステップＳ３０５に進む。
ステップＳ３０５では前回の電源ＯＮ時における構成と比較し、異なっていればステップＳ３０６に進み、同じであればステップＳ３１０に進む。
ステップＳ３０６では当該Ｉ／Ｏユニットからインターフェースシーケンスプログラムを読み出しＣＰＵユニット６のシーケンスプログラムメモリ７０１にローデイングする。なお、シーケンスプログラムメモリ７０１はスロット毎に固定サイズのエリアを有しており、ローデイング時においては当該エリアにローデイングされる。
スロットテーブル１０においては、図５に示されるように、スロット番号別に上述のカード情報の他に、このとき、ローデイングされたインターフェースシーケンスプログラムの容量と、このインターフェースシーケンスプログラムがＣＰＵユニット６内にあるシーケンスプログラムメモリ７０１のいずれの番地から格納されるかを示す先頭アドレスとが格納される。
ステップＳ３０７ではローデイングされたインターフェースシーケンスプログラム中に点在するインターフェースデバイス名をＣＰＵユニット６上でのデバイス番号に変換するため、デバイス番号にｄ＿ｎｏのオフセットを加算する。このとき、図６に示す第１テーブル、例えば、シンボルテーブルにオフセットを加算する前のデバイス名（Ｉ／Ｏユニット上でのデバイス名）と、加算後のデバイス名（ＣＰＵユニット上でのデバイス名）と、スロット番号とが記入される。なお、Ｉ／Ｏユニット８において入力デバイスであればＣＰＵユニット６においては出力デバイスになり、Ｉ／Ｏユニット８において出力デバイスであればＣＰＵユニット６においては入力デバイスになるので、デバイス名におけるＸはＹに、ＹはＸに置き換えられる。
ステップＳ３０８では当該ユニットの占有点数をｄ＿ｎｏに加算しステップＳ３０２に戻る。
ステップＳ３０４からステップＳ３０９に移行した場合は、ステップＳ３０９においてスロットテーブルにおける当該スロットの欄の内容をクリアしステップＳ３１０に進む。
ステップＳ３１０では空きスロット分の占有点数として１６点（１６進数表現では１０点）をｄ＿ｎｏに加算しステップＳ３０２に戻る。
【００２０】
この図４に示す動作により、それぞれのＩ／Ｏユニット８からインターフェースシーケンスプログラムがＣＰＵユニット６にロードされると、ＣＰＵユニット６は、ＣＰＵユニット６自身のシーケンスプログラムをスキャンした後にそれぞれのインターフェースシーケンスプログラムをその格納アドレスをスロットテーブルを参照して求めてスキャン実行する。
すなわち、ＣＰＵユニット６自身のシーケンスプログラムとそれぞれのインターフェースシーケンスプログラムとがつなげられたシーケンスプログラムが第２シーケンスプログラム、例えば、新たなシーケンスプログラムとなりＣＰＵユニット６によりスキャン実行される。なお、スロットテーブル１０の当該スロット番号の欄においてユニット名等がクリアされていればそのスロットにはユニットが装着されていないものとして読み出しは行われない。
【００２１】
図７は図１に示すＩ／Ｏユニット８とこのＩ／Ｏユニット８を介して制御される一例のベルトコンベアシステムを示す説明図である。図において、１１は前進運転接点、１３は後進運転接点である。
前進運転接点１１、後進運転接点１３のＩ／Ｏユニット８におけるデバイス名はそれぞれＹ１０、Ｙ１１である。また、前進端センサ３２および後進端センサ３３のＩ／Ｏユニット８におけるデバイス名はそれぞれＸ００、Ｘ０１である。ベルトコンベア３１にはモータ２９が取り付けられており、ＣＰＵユニット６はＩ／Ｏユニット８を介してモータ２９に対して正転・逆転・停止を指令する。ベルトコンベア３１の一端（図７において左端）の近傍には前進端センサ３２が、他端（図７において右端）の近傍には後進端センサ３３がそれぞれ取り付けられており、それぞれベルトコンベア３１上のワークが前進端、後進端に到達したことを検知しＩ／Ｏユニット８に知らせる。
【００２２】
図８は、ＰＣ内のスロットにＣＰＵユニット６やＩ／Ｏユニット８等が装着されている様子を示す図である。
【００２３】
図９は、図７に示すベルトコンベアシステムにおいて、Ｉ／Ｏユニット８からＣＰＵユニット６にローデイングされ、ＣＰＵユニット６において実行される一例のインターフェースシーケンスプログラムを示すラダー図である。なお、この図９にはデバイス名が変換された後の状態が示されている。
次に、このラダー図について説明する。図９において、ステップ８０１では、Ｘ０がＯＮであればＩ／Ｏユニット８上の緊急停止出力Ｙ７ＦをＯＮにする指令が出されベルトコンベアを緊急停止させる（デバイス名のＹ７ＦはＩ／Ｏユニット８においてはＸ１Ｆ）。
ステップ８０２においては、Ｘ１がＯＮであればＹ７４（前進指令）をＯＮにする指令が出される（デバイス名Ｙ７４はＩ／Ｏユニット８においてはＸ１４）。
ステップ８０３においては、Ｘ２がＯＮであればＹ７５（後進指令）をＯＮにする指令が出される（デバイス名Ｙ７５はＩ／Ｏユニット８においてはＸ１５）。
ステップ８０４においては、Ｘ７ＥがＯＮであればＦＲＯＭ命令により故障番号をＩ／Ｏユニット８からＣＰＵユニット６に転送する（デバイス名Ｘ７ＥはＩ／Ｏユニット８においてはＹ１Ｅ）。なお、このＸ７Ｅはエラー発生時（サイクルタイムオーバー時）にＯＮする。
Ｙ７Ｆ、Ｙ７４、Ｙ７５をＯＮにすると、シーケンスプログラムのＥＮＤ処理において、上述のシンボルテーブルを参照してこれらのデバイス名に対応するスロット番号とＩ／Ｏユニット８上のデバイス名を得て、そのデバイス名のデバイスをＯＮにするＴＯ命令を実行し、該当Ｉ／Ｏユニット８の該当デバイス（Ｘ１Ｆ、Ｘ１４、Ｘ１５）をＯＮにする。また、同様にシーケンスプログラムのＥＮＤ処理において、シンボルテーブルからＸ７Ｅに対応するスロット番号とＩ／Ｏユニット８上のデバイス番号（Ｙ１Ｅ）とを得て、このスロットに装着されているＩ／Ｏユニット８からこのデバイス名のデバイスの内容を読み取るＦＲＯＭ命令を実行してＸ７Ｅの状態を設定する。このようにして、インターフェースデバイスであるＸ１Ｆ、Ｘ１４、Ｘ１５、および、Ｘ７Ｅがリフレッシュされる。
Ｘ０、Ｘ１、Ｘ２はＣＰＵユニット６のシーケンスプログラム（インターフェースシーケンスプログラムを含まない部分）においてオンオフ制御される。なお、これらのＸ０、Ｘ１、Ｘ２は、Ｉ／Ｏユニット８に格納されているインターフェースシーケンスプログラムにおいてはインターフェースデバイスと判定されないデバイス名に設定されている。
【００２４】
図１０は、図７に示されるベルトコンベアシステムにおいて、Ｉ／Ｏユニット８内で実行されるシーケンスプログラムの一例を示すラダー図である。図中、インターフェースデバイス名の表記において、括弧内の表記はインターフェースシーケンスプログラムがＣＰＵユニット６へローデイングされデバイス名が変換された後の表記（ＣＰＵユニット８内における表記）を参考野ために示している。
図において、ステップＳ９０１においては、Ｔ０がＯＮになっていなければ通常処理を行うものとしてステップＳ９０５へジャンプする。なお、Ｔ０はサイクルタイムオーバー等によりセットされる。
ステップＳ９０２においては、前回のスキャンですでにＹ１ＥがＯＮになっていれば再度ＣＨＫ命令を実行しないようにするためにステップＳ９０５にジャンプする。なお、ＣＨＫ命令による故障診断で故障を検出するとＹ１ＥがＯＮする。Ｙ１ＥはＩ／Ｏユニット８内でのデバイス名でありＣＰＵユニット６内ではＸ７Ｅである。
ステップＳ９０３においては、前後進動作時においてサイクルタイムオーバーが発生していればＣＨＫ命令が実行され、上述のように故障が検出されるとＹ１Ｅがセットされる。
ステップＳ９０４においては、故障番号をＣＰＵユニット８に転送する。
ステップＳ９０５においては、Ｘ１５（後退指令デバイス）、Ｘ００（前進端センサの状態を示すデバイス）、Ｘ１Ｆ（緊急停止指令デバイス）がＯＦＦしている状態でＸ１４がＯＮすると、Ｙ１０（前進運転中を示すデバイス）をＯＮし、故障検出に使用するＹ００をＯＮする。なお、Ｘ１４はコンベア前進指令を示すデバイスであり、ラダー回路上においてＹ１０の接点はＸ１４と並列に接続されている。
ステップＳ９０６においては、Ｘ１４（前進指令デバイス）、Ｘ０１（後進端センサの状態を示すデバイス）、Ｘ１Ｆ（緊急停止指令デバイス）がＯＦＦしている状態でＸ１５がＯＮすると、Ｙ１１（後退運転中を示すデバイス）をＯＮし、故障検出に使用するＹ００をＯＦＦする。なお、ラダー回路上においてＹ１１の接点はＸ１５と並列に接続されている。
ステップＳ９０７においては、Ｘ００がＯＮしていればＹ７４をリセットする。Ｙ７４は前進指令なのでＹ７４がリセットされると前進指令がリセットされ前進動作が停止される。
ステップＳ９０８においては、Ｘ０１がＯＮしていればＹ７５をリセットする。Ｙ７５は後進指令なので、Ｙ７５がリセットされると後進指令がリセットされ後進動作が停止される。
ステップＳ９０９においては、Ｘ００がＯＦＦ、Ｘ１ＦがＯＦＦの状態でＹ１０がＯＮしているとき、または、Ｘ０１がＯＦＦ、Ｘ１ＦがＯＦＦの状態でＹ１１がＯＮしているときサイクルタイムチェックタイマを動作させ、カウントアップするとＴ０をＯＮにする。
【００２５】
なお、図１０のラダー図におけるステップＳ９０５、ステップＳ９０６は、図１６のラダー図におけるステップＳ１５４、ステップＳ１５５に比べて緊急停止用の接点Ｘ１Ｆ（Ｙ７Ｆ）が追加されている。これは、Ｉ／Ｏユニット８を１個の部品とするために必要な処置の１つである。
また、図１０のラダー図においては、図１６に比べてステップＳ９０７およびステップＳ９０８が追加されているが、これらのステップもＩ／Ｏユニット８を１つの部品とするために必要な処置として追加されたものであり、ＣＰＵユニット６からＩ／Ｏユニット８内に送られた前進／後進の指令によりＯＮになっている出力デバイスをＯＦＦにする。
なお、Ｉ／Ｏユニット８が一つの部品と見なせるということは、操作者がこのＩ／Ｏユニット８をＰＣのスロットに挿入しスロット番号をセットするだけで、ＣＰＵユニット６およびＩ／Ｏユニット８のプログラムをほとんど修正することなく、このＩ／Ｏユニット８使用できるということを意味している。
【００２６】
以上説明したように、図７に示すシステムにおいては、ＣＰＵユニット６がＩ／Ｏユニット８に対して、コンベア動作許可、前進指令、後進指令の３つの指令を出し、エラー発生時にはエラーＮｏをＩ／Ｏユニット８から受け取るようにしている。すなわち、Ｉ／Ｏユニット８はＣＰＵユニット６の指令に従い、前進、後進、停止動作を行い、サイクルタイムオーバー時にはＣＰＵユニット６において、ローデイングされたインターフェースシーケンスプログラムにおけるＦＲＯＭ命令が実行され故障番号がＣＰＵユニット６に送信されるように構成されている。
【００２７】
図１６に示すシーケンスプログラムをＣＰＵユニット２２が実行する従来システムに比べ、図７に示すシステムにおいては、シーケンスプログラムが図１０に示されるＩ／Ｏユニット８により処理される部分と図９に示されるインターフェース部分とに分けられ、ＣＰＵユニット６内のシーケンスプログラムにおいては図１０に示される処理を行わずに済むようにしたので、ＣＰＵユニット６により実行されるシーケンスプログラムのスキャンタイムが短くなり高速処理が可能になる。
また、図１６に示すシーケンスプログラムをＣＰＵユニット２２が実行する従来システムに比べ、この発明の実施の形態においては、上述のようにＩ／Ｏユニット８により処理される部分とインターフェースの部分とに分けられているので、システムを再構築する場合等においは、変更を必要とする部分が容易にわかりプログラムの開発効率が向上する。
すなわち、図１０に示すシーケンスプログラムはＩ／Ｏユニット８に固有のシーケンスプログラムであり通常のシステムの変更の際には変更の必要がなく、また、システムを再構築する場合等においては、図９に示すシーケンスプログラムを変更または作成するだけで良く、プログラミング作業が大幅に軽減される。
【００２８】
次に、Ｉ／Ｏユニット８のデバイスのアクセス方法について説明する。図１１はＣＰＵユニット６とＩ／Ｏユニット８との間の情報授受における信号経路を示す説明図である。図１１に示されるシステムにおいて、それぞれのＩ／Ｏユニット８は数値や記号等からなるシンボル（ユニット名）がつけられ、ＣＰＵユニット６からＩ／Ｏユニット８のデバイスをアクセスする場合、もしくは、別のＩ／ＯユニットからＩ／Ｏユニット８のデバイスをアクセスする場合において、このシンボルによりＩ／Ｏユニット８を指定するようにしている。ＣＰＵユニット６はこのシンボルをスロットテーブル１０によりＣＰＵユニット６におけるスロット番号に変換する。
例えば、Ｉ／Ｏユニット８ａのシンボルがＵＮＩＴＡであり、Ｉ／Ｏユニット８ｂのシンボルがＵＮＩＴＢである場合において、Ｉ／Ｏユニット８ａがＩ／Ｏユニット８ｂのデバイスＸ０をアクセスする際には、図１２に示されるように、Ｉ／Ｏユニット８ａはこのデバイスＸ０を（ＵＮＩＴＢ．Ｘ０）で指定する。
なお、図５においては、Ｉ／Ｏユニット８ａの装着位置がスロット５、Ｉ／Ｏユニット８ａのシンボルがＵＮＩＴＡであり、Ｉ／Ｏユニット８ｂの装着位置が６、Ｉ／Ｏユニット８ｂのシンボルがＵＮＩＴＢである場合のスロットテーブル１０の一部が図示されている。
ＣＰＵユニット６は、スロットテーブル１０によりシンボルＵＮＩＴＢをスロット番号に変換して、対応するスロットのユニットに対してアクセスする。
このようにして、Ｉ／Ｏユニット８がいずれのスロットに挿されていてもそのＩ／Ｏユニット８のデバイスを容易に指定することができる。
【００２９】
次に、図１２に示す変換について説明を補足する。Ｉ／Ｏユニット８ａがＩ／Ｏユニット８ｂのデバイスＸ０にアクセスする場合には、まず、Ｉ／Ｏユニット８ａはＣＰＵユニット６にＩ／Ｏユニット８ｂのデバイスＸ０をＯＮしたい旨のメッセージを伝える。このメッセージは（Ｉ／Ｏユニット８ｂのシンボル＋Ｉ／Ｏユニット８ｂ上でのデバイス番号＋オペレーションコード）という構成のメッセージになっている。オペレーションコードは、”ＯＮ”、”ＯＦＦ”等を示すコードである。この例の場合におけるメッセージは、例えば、”ＵＮＩＴ．Ｂ  Ｘ０  ＯＮ”となる。
ＣＰＵユニット６では、スロットテーブル１０からＩ／Ｏユニット８ｂのスロット番号を得て、このスロットのユニットに対してこのメッセージを送る。このようにして、メッセージがＩ／Ｏユニット８ｂに転送される。
Ｉ／Ｏユニット８ｂはメッセージ中のデバイス番号により指定される自ユニット内のデバイスに対しメッセージ中のオペレーションコードが示す処理を行う。この例の場合にはＩ／Ｏユニット８ｂ内のデバイスＸ０をオンする処理が行われる。
【００３０】
以上のように、本発明によればＩ／Ｏユニット８を一つの部品と見なすことができ、ＣＰＵユニット６におけるシーケンスプログラムにおいては、この部品を操作するインターフェースシーケンスプログラムを自身のシーケンスプログラムに加えて実行すればよい。Ｉ／Ｏユニット８において自身のシーケンスプログラムにより個々に独立して処理が行われるので、ＣＰＵのシーケンスプログラムの長大化が防止され（スキャン時間の長大化が防止され）ＰＣの高速動作が可能になる。また、システムの変更や構築の際や、他のシステムのシーケンスプログラムを流用する際などにおいて、インターフェースシーケンスプログラムを修正／作成を行えばよく、システムの変更や構築や他のシステムのシーケンスプログラムを流用が容易にできる。
【００３１】
【発明の効果】
以上説明したように、制御対象に設けられた入力／出力機器の状態等を示すデバイス情報の第１記憶手段における記憶アドレスが記述された第１シーケンスプログラムを第１制御手段が繰り返し実行することにより第１記憶手段を介して制御対象を制御するＩ／ＯユニットからＰＣ本体ユニットに、デバイス情報のうちＰＣ本体ユニット間で授受されるインターフェースデバイス情報の第１記憶手段における記憶アドレスが記述されたインターフェースプログラムが転送されるとともに、インターフェースデバイス情報についてＩ／Ｏユニットの第１記憶手段における記憶アドレスとＰＣ本体ユニットの第３記憶手段における記憶アドレスとの対応を示す第１テーブルが第２制御手段により作成され、インターフェースプログラムにおけるインターフェースデバイス情報のＩ／Ｏユニットにおける記憶アドレスが第２制御手段によりＰＣ本体ユニットにおける記憶アドレスに変換され、変換されたインターフェースプログラムと自身のシーケンスプログラムとを有する第２シーケンスプログラムが第２制御手段により実行され、第１テーブルにもとづきインターフェースデバイス情報について第１、第３記憶手段の記憶内容が同一になるように第１、第３記憶手段の記憶内容がリフレッシュされるとともに、自身のシーケンスプログラムによる所定の制御に加えてインターフェースプログラムによるＩ／Ｏユニットの制御が第３記憶手段を介して行われるようにしたので、Ｉ／Ｏユニット毎にそのＩ／Ｏユニットが実行するシーケンスプログラムを作成すれば、そのＩ／Ｏユニットは一つの部品として他のプログラマブルコントローラにも流用でき、Ｉ／Ｏユニットの追加に伴うＰＣ本体ユニットのシーケンスプログラムへの追加プログラムの増大化が防止され、プログラムの作成の困難化を防止できるとともに、ＰＣ本体ユニットのスキャン時間の増大化が防止されＰＣ本体ユニットの処理速度の低下を防止できる効果がある。また、システムの変更や、シーケンスプログラムの他システムへの流用を容易化できる効果がある。
【００３２】
また、Ｉ／Ｏユニットの第４記憶手段に自身のユニットの名称が記憶され、各スロットに挿入されているＩ／Ｏユニットにおける第４記憶手段の記憶内容が読み出され、名称とＩ／Ｏユニットが挿入されているスロットの番号との対応を示す第２テーブルが第２制御手段により作成され、第２テーブルにもとづき名称に対応するスロット番号が第２制御手段により認知されるようにしたので、プログラム上において名称によりＩ／Ｏユニットを指定することが可能になり、プログラム作成の困難化を防止できる効果がある。また、システムの変更や、シーケンスプログラムの他システムへの流用を容易化できる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるＩ／Ｏユニットのブロック構成図である。
【図２】この発明の実施の形態１によるＣＰＵユニットのブロック構成図である。
【図３】この発明の実施の形態１によるシステム構成図である。
【図４】この発明の実施の形態１による電源投入時のにおけるＣＰＵユニットの動作フロー図である。
【図５】この発明の実施の形態１におけるスロットテーブルの一例を示す説明図である。
【図６】この発明の実施の形態１におけるシンボルテーブルの一例を示す説明図である。
【図７】この発明の実施の形態１によるベルトコンベアシステムを示すブロック図である。
【図８】この発明の実施の形態１においてＰＣのスロットにＣＰＵユニット等が装着された様子を示す説明図である。
【図９】この発明の実施の形態１におけるインターフェースシーケンスプログラムを示すラダー図である。
【図１０】この発明の実施の形態１においてＩ／Ｏユニット内で実行されるシーケンスプログラムを示すラダー図である。
【図１１】この発明の実施の形態１における信号経路を示す図である。
【図１２】この発明の実施の形態１においてＩ／Ｏユニット間でアクセスする場合の説明図である。
【図１３】パターンテーブルを利用した従来のＩ／Ｏユニットのブロック図である。
【図１４】従来のベルトコンベアシステムを示すブロック図である。
【図１５】図１４に示すベルトコンベアシステムにおいてＰＣのスロットにＣＰＵユニット等が装着された様子を示す説明図である。
【図１６】図１４に示すベルトコンベアシステムにおいてＣＰＵユニットが実行するシーケンスプログラムのラダー図である。
【図１７】複数のＰＣが接続された従来のネットワークのブロック構成図である。
【符号の説明】
１  Ｉ／Ｏバス
３  制御装置
４  入力回路
５  出力回路
６  ＣＰＵユニット
７  シーケンスプログラムメモリ
８  Ｉ／Ｏユニット
９  制御装置
１０  スロットテーブル
１１  前進運転接点
１２  モータ
１３  後進運転接点
１４  ベルトコンベア
１５  前進端センサ
１６  後進端センサ
１７  入力ユニット
【図１】
0003627087.tif 000002
【図２】
0003627087.tif 000003
【図３】
0003627087.tif 000004
【図４】
0003627087.tif 000005
【図５】
0003627087.tif 000006
【図６】
0003627087.tif 000007
【図７】
0003627087.tif 000008
【図８】
0003627087.tif 000009
【図９】
0003627087.tif 000010
【図１０】
0003627087.tif 000011
【図１１】
0003627087.tif 000012
【図１２】
0003627087.tif 000013
【図１３】
0003627087.tif 000014
【図１４】
0003627087.tif 000015
【図１５】
0003627087.tif 000016
【図１６】
0003627087.tif 000017
【図１７】
0003627087.tif 000018