(57)【要約】【課題】冗長化されたＤＩモジュールを有するＰＬＣでは、各ＤＩモジュールが有する入力遅延時間および、バスの処理タイミングなどにより入力信号の同時性が補償できない。【解決手段】冗長化されたＤＩモジュールからの入力のバラツキ時間を、予め前記ＰＡＤＴを使用してシステム設定ファイルに保存する。ＣＰＵモジュールでは、１回目のＤＩモジュールからの状態変化による割り込み発生時に割り込みタスクを起動すると共に、バラツキ時間の設定されたタイマを起動して割り込みタスク起動中フラグをオンにする。２回目の割り込み発生時に、ＣＰＵモジュールは、割り込みタスク起動中フラグがオン状態であることを確認して割り込みタスク起動を停止し、タイマのタイムアップ時に割り込みタスク起動中フラグをオフ状態にする。【選択図】  図１
2017167688.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵモジュール、外部の機器からの入力信号を冗長化して複数設置されたＤＩモジュールおよびバスを有するプログラマブルコントローラであって、
ＣＰＵモジュールとＰＡＤＴ間を接続したシステムで設定されたファイルに基づき、ＤＩモジュールでの状態変化時にＣＰＵモジュールの管理機能部で割り込みタスクを起動する方法において、
前記冗長化されたＤＩモジュールからの入力のバラツキ時間を、予め前記ＰＡＤＴを使用してシステム設定ファイルに保存し、
前記ＣＰＵモジュールの管理機能部は、１回目のＤＩモジュールからの状態変化による割り込み発生時に、割り込みタスク起動中フラグのオフ状態を確認して、前記割り込みタスクを起動すると共に、
ＣＰＵモジュールの管理機能部は、前記バラツキ時間の設定されたタイマを起動して、且つ割り込みタスク起動中フラグをオンにし、
２回目のＤＩモジュールからの状態変化による割り込み発生時に、前記ＣＰＵモジュールの管理機能部は、割り込みタスク起動中フラグがオン状態であることを確認して割り込みタスク起動を停止し、前記タイマのタイムアップ時に割り込みタスク起動中フラグをオフ状態にすることを特徴とした多重割り込み起動防止方法。
【請求項２】
前記バラツキ時間の設定は、冗長化されたＤＩモジュールの入力遅延時間および前記バスの処理時間から算出し、ユーザが設定することを特徴とした請求項１記載の多重割り込み起動防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラの多重割り込み起動防止方法に係わり、特に冗長化されたＤＩモジュールへの入力信号の同時性の確保に関するものである。
【背景技術】
【０００２】
図３はプログラマブルコントローラ（以下ＰＬＣという）のシステム構成図を示したもので、ＰＬＣは、電源モジュール１、管理機能部や監視機能部などを有するＣＰＵモジュール２、伝送インタフェース３および複数（図３では各２枚）のＤＩモジュール４とＤＯモジュール５を備え、各モジュールはベースボードに収納されてそれぞれはバス６を介して信号の授受が可能に構成されている。
【０００３】
ＰＬＣのＣＰＵモジュール２には、プログラミングアンドデバッグツール（以下ＰＡＤＴという）７が接続され、ＰＡＤＴ７で作成されたシステムの動作が設定されているシステム設定ファイルをＣＰＵモジュール２の管理機能部が受信し、設定された内容でＰＬＣシステムを動作させる。また、ＤＩモジュール４には外部の機器８からの信号が入力される。ＤＩモジュール４（４-1，４-2）の２枚は、機器８より入力される信号の冗長化のために設けられたもので、同じ信号を入力してＣＰＵモジュール２の管理機能部にバス６経由で伝送する。
【０００４】
図３で示すシステムでは、ＰＬＣのＩＯモジュールとして、ＤＩモジュール４を使用して機器８からの入力信号をＤＩモジュール４-1，４-2に取り込み、ＤＩの入力信号の変化（状態変化）により、ＣＰＵモジュール２に登録された割り込みタスクを起動する。その際、より確実に割り込みタスクを起動するために、ＤＩモジュール４への入力信号を冗長化し、複数のＩＯモジュールからのＤＩ入力信号の状態変化をＰＡＤＴ７で設定された条件に従い、割り込みタスクを起動する。
【０００５】
図４は、割り込みタスクの動作説明図である。ＰＡＤＴ７を使用したシステム構成でＤＩモジュール４を２枚用いた場合、２枚のＤＩモジュール４-1，４-2の設定で割り込み機能を設定し、割り込みタスクを起動するためのモジュールとしてシステム設定ファイルを作成する。これらの設定を行うことで２枚のＤＩモジュール４-1，４-2は冗長化されて機器８より同じ信号を入力する。入力信号の立上がり、または立下りの状態変化が生じたとき、ＣＰＵモジュール２の管理機能部におけるバス機能によりＤＩモジュール４-1，４-2からの状態変化による割り込みが発生し、ＣＰＵモジュール２の管理機能部は割り込みタスクを起動する。
【０００６】
割り込みタスクは、例えば１００ms周期の通常のイベント周期毎に起動されるイベント周期タスクより、優先順位が高くなっている。イベント周期タスクが動作している状態で、ＤＩモジュール４-1，４-2からの状態変化が発生すると、ＣＰＵモジュール２の監視機能部ではイベント周期タスクの動作を中断し、割り込みタスクが起動される。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５６６９９８７号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図５は、多重割り込みによる割り込みタスクの動作説明図である。図４で示すような冗長化されたＤＩモジュール４-1，４-2の入力信号を使用し、入力信号の状態変化をＣＰＵモジュール２の管理機能部で検出して割り込みタスクを起動する方法では、冗長化されたＤＩモジュール４-1，４-2の入力信号の同時性は、ＤＩモジュール４-1，４-2の入力遅延時間、バス６（6-1，6-2）の処理タイミングなどによる影響で同時性の保障ができない。このため、１回の状態変化で１回の割り込みタスクが起動される正常な動作以外に、遅延したＤＩモジュールからの状態変化に伴う割り込み信号が入力され、１回の状態変化で２回の割り込みタスクが起動される異常な動作となる可能性がある。
【０００９】
本発明が目的とするところは、冗長化されたＤＩモジュールの入力信号の同時性を可能とするＰＬＣの多重割り込み起動防止方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、ＣＰＵモジュール、外部機器からの入力信号を冗長化して複数設置されたＤＩモジュールおよびバスを有するプログラマブルコントローラであって、
ＣＰＵモジュールとＰＡＤＴ間を接続したシステムで設定されたファイルに基づき、ＤＩモジュールでの状態変化時にＣＰＵモジュールの管理機能部で割り込みタスクを起動する方法において、
前記冗長化されたＤＩモジュールからの入力のバラツキ時間を、予め前記ＰＡＤＴを使用してシステム設定ファイルに保存し、
前記ＣＰＵモジュールの管理機能部は、１回目のＤＩモジュールからの状態変化による割り込み発生時に、割り込みタスク起動中フラグのオフ状態を確認して、前記割り込みタスクを起動すると共に、
ＣＰＵモジュールの管理機能部は、前記バラツキ時間の設定されたタイマを起動して、且つ割り込みタスク起動中フラグをオンにし、
２回目のＤＩモジュールからの状態変化による割り込み発生時に、前記ＣＰＵモジュールの管理機能部は、割り込みタスク起動中フラグがオン状態であることを確認して割り込みタスク起動を停止し、前記タイマのタイムアップ時に割り込みタスク起動中フラグをオフ状態にすることを特徴としたものである。
【００１１】
また、本発明のバラツキ時間の設定は、冗長化されたＤＩモジュールの入力遅延時間および前記バスの処理時間から算出し、ユーザが設定することを特徴としたものである。
【発明の効果】
【００１２】
以上のとおり、本発明によれば、予め設定されたバラツキ時間内で割り込みが発生しても、ＣＰＵモジュールの管理機能部で割り込みタスクの起動を防止することで、割り込みタスクの多重起動は防止される。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施形態を示すフローチャート。
【図２】バラツキ時間の概念図。
【図３】ＰＬＣのシステム構成図。
【図４】割り込みタスクの動作説明図。
【図５】多重割り込みによる割り込みタスクの動作説明図。
【発明を実施するための形態】
【００１４】
図２はバラツキ時間の概念図を示したもので、冗長化されたＤＩモジュール
４-1，４-2には時間差（ａ）で示すような入力遅延時間のバラツキがある。例えば、オフ→オンへの状態変化の場合には４〜１１ms、オン→オフへの状態変化の場合には６〜１６msなどモジュール構成や種別により異なる。また、（ｂ）で示すようなバスの処理時間などによるバラツキもある。これらを考慮して、１回の状態変化で１回の割り込みタスクが正常に起動するようにバラツキ時間を考慮する必要がある。
【００１５】
本発明では、バラツキ時間の設定はＰＡＤＴ７を使用し、システム設定ファイルに保存する。バラツキ時間の計算は、ＤＩモジュール４-1，４-2の入力遅延時間およびバスの処理時間から計算を行い、ユーザが設定を行う。例えば、ＤＩモジュール４-1，４-2の入力遅延時間のバラツキが１２ms、バスの処理時間が１msの場合には、バラツキ時間は１３msとなる。
【００１６】
ＣＰＵモジュール２の管理機能部は、予めＤＩモジュール４-1，４-2の入力遅延時間およびバスの処理時間から計算されたシステム設定ファイルのバラツキ時間を使い、割り込みタスクが多重起動しないようにする。
【００１７】
図１は、本発明による処理フローを示したものである。ステップＳ１で、ＣＰＵモジュール２の管理機能部は、処理演算部のタイマ機能を使ってバラツキ時間のタイムアップを計測し、ＤＩモジュール４-1，４-2からの状態変化の有無を監視する。監視中に、何れかのＤＩモジュール４-1，４-2からの１回目の状態変化による割り込みが発生すると、Ｓ２で、ＣＰＵモジュール２の管理機能部は割り込みを解除する。
【００１８】
Ｓ３では、割り込みタスク起動中フラグがオフ状態であることを確認し、オフ状態であればＳ４で割り込みタスクを起動する。同時にＣＰＵモジュール２の管理機能部のタイマを起動して、割り込みタスク起動中フラグにオンをセットする。
【００１９】
Ｓ５で、入力が遅延した２回目の状態変化による割り込みが発生すると、ＣＰＵモジュール２の管理機能部は、Ｓ６で割り込みを解除する。また、Ｓ７では割り込みタスク起動中フラグがオン状態であるか否かを確認する。２回目の状態変化による割り込み発生であることから、タスク起動中フラグは既にオン状態となっている。したがって、ＣＰＵモジュール２の管理機能部は、タスク起動中フラグがオン状態であることを確認して割り込みタスクを起動しない。
【００２０】
その後、Ｓ８でＣＰＵモジュール２の管理機能部は、設定されたバラツキ時間が経過してタイマ機能がタイムアップしたことを確認し、Ｓ９で割り込みタスク起動中フラグをオフ状態にする。これにより、バラツキ時間として設定された時間内での割り込みタスクの多重起動は防止される。
【符号の説明】
【００２１】
１…  電源モジュール
２…  ＣＰＵモジュール
３…  インタフェース
４…  ＤＩモジュール
５…  ＤＯモジュール
６…  バス
７…  ＰＡＤＴ（プログラミングアンドデバッグツール）
８…  機器
【図１】
2017167688.tif 000003
【図２】
2017167688.tif 000004
【図３】
2017167688.tif 000005
【図４】
2017167688.tif 000006
【図５】
2017167688.tif 000007