JPH06131017A - シーケンスコントローラシステムにおけるソフトウェア処理方法 - Google Patents
シーケンスコントローラシステムにおけるソフトウェア処理方法Info
- Publication number
- JPH06131017A JPH06131017A JP4304950A JP30495092A JPH06131017A JP H06131017 A JPH06131017 A JP H06131017A JP 4304950 A JP4304950 A JP 4304950A JP 30495092 A JP30495092 A JP 30495092A JP H06131017 A JPH06131017 A JP H06131017A
- Authority
- JP
- Japan
- Prior art keywords
- message
- cpu
- input signal
- output signal
- devices
- 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.)
- Granted
Links
Landscapes
- Hardware Redundancy (AREA)
- Information Transfer Systems (AREA)
- Computer And Data Communications (AREA)
- Programmable Controllers (AREA)
- Selective Calling Equipment (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 CPUの多重化、CPU間の負荷分散、さら
にシステムの拡張を容易にする方法を提供する。 【構成】 複数のシーケンスプログラムを内蔵し、論理
演算を行う複数のCPU装置と、制御対象である機械装
置の信号のインタフェース処理を行う複数のI/O装置
とが通信線を介して結合され、全てのCPU装置および
I/O装置に少なくとも1つ以上内蔵され、前記各I/
O装置に属する入力及出力信号メッセージに含まれるデ
ータを格納するデータ用バッファを有するソフトウェア
モジュールと、当モジュールが前記各メッセージの送信
元を判断できる識別コードと、入、出力メッセージに対
応する全てのビットが1になるフラグビットから構成さ
れる入、出力信号メッセージ用同期フラグとを備え、前
記各装置間で定められた順序で各装置がトークンを授受
するトークンリング方式で前記メッセージの送信を行う
ようにしたシーケンスコントローラシステム。
にシステムの拡張を容易にする方法を提供する。 【構成】 複数のシーケンスプログラムを内蔵し、論理
演算を行う複数のCPU装置と、制御対象である機械装
置の信号のインタフェース処理を行う複数のI/O装置
とが通信線を介して結合され、全てのCPU装置および
I/O装置に少なくとも1つ以上内蔵され、前記各I/
O装置に属する入力及出力信号メッセージに含まれるデ
ータを格納するデータ用バッファを有するソフトウェア
モジュールと、当モジュールが前記各メッセージの送信
元を判断できる識別コードと、入、出力メッセージに対
応する全てのビットが1になるフラグビットから構成さ
れる入、出力信号メッセージ用同期フラグとを備え、前
記各装置間で定められた順序で各装置がトークンを授受
するトークンリング方式で前記メッセージの送信を行う
ようにしたシーケンスコントローラシステム。
Description
【0001】
【産業上の利用分野】本発明は、鉄鋼プラント、自動車
製造工場、等の製造現場に設置されるシーケンスコント
ローラシステムに関し、特にそのシステムの多重化、負
荷分散( 負荷の平準化) 、あるいはシーケンスコントロ
ーラの増設等を容易に実現できる、シーケンスコントロ
ーラシステムの物理構造に依存しないソフトウェアの処
理方式に関する。
製造工場、等の製造現場に設置されるシーケンスコント
ローラシステムに関し、特にそのシステムの多重化、負
荷分散( 負荷の平準化) 、あるいはシーケンスコントロ
ーラの増設等を容易に実現できる、シーケンスコントロ
ーラシステムの物理構造に依存しないソフトウェアの処
理方式に関する。
【0002】
【従来の技術】従来、シーケンスコントローラシステム
の構成は、図10、図11のようになっている。図10
において、I/O装置6とI/O装置7は機械装置10
から信号を入力する。CPU装置4はその信号を通信線
2を経由して受信し、その信号に対してシーケンス処理
演算を行い、演算結果の信号を通信線2を経由してI/
O装置6とI/O装置7に送信する。I/O装置6とI
/O装置7はその信号を機械装置10に出力する。I/
O装置8とI/O装置9は機械装置10から信号を入力
する。CPU装置5はその信号を通信線3を経由して受
信し、その信号に対してシーケンス処理演算を行い、演
算結果の信号を通信線3を経由してI/O装置8とI/
O装置9に送信する。I/O装置8とI/O装置9はそ
の信号を機械装置10に出力する。図11において、I
/O装置17、I/O装置18、I/O装置19は機械
装置20から信号を入力する。IOP装置15はその信
号を通信線16を経由して受信する。CPU装置11、
CPU装置12、CPU装置13はバス信号線14を経
由してIOP装置15からその信号を入力する。CPU
装置11、CPU装置12、CPU装置13は同時に動
作し、その信号に対してシーケンス処理演算を行い、演
算結果の信号をバス信号線14を経由してIOP装置1
5に出力する。IOP装置15はその信号を通信線16
を経由してI/O装置17、I/O装置18、I/O装
置19に送信する。I/O装置17、I/O装置18、
I/O装置19はその信号を機械装置20に出力する。
の構成は、図10、図11のようになっている。図10
において、I/O装置6とI/O装置7は機械装置10
から信号を入力する。CPU装置4はその信号を通信線
2を経由して受信し、その信号に対してシーケンス処理
演算を行い、演算結果の信号を通信線2を経由してI/
O装置6とI/O装置7に送信する。I/O装置6とI
/O装置7はその信号を機械装置10に出力する。I/
O装置8とI/O装置9は機械装置10から信号を入力
する。CPU装置5はその信号を通信線3を経由して受
信し、その信号に対してシーケンス処理演算を行い、演
算結果の信号を通信線3を経由してI/O装置8とI/
O装置9に送信する。I/O装置8とI/O装置9はそ
の信号を機械装置10に出力する。図11において、I
/O装置17、I/O装置18、I/O装置19は機械
装置20から信号を入力する。IOP装置15はその信
号を通信線16を経由して受信する。CPU装置11、
CPU装置12、CPU装置13はバス信号線14を経
由してIOP装置15からその信号を入力する。CPU
装置11、CPU装置12、CPU装置13は同時に動
作し、その信号に対してシーケンス処理演算を行い、演
算結果の信号をバス信号線14を経由してIOP装置1
5に出力する。IOP装置15はその信号を通信線16
を経由してI/O装置17、I/O装置18、I/O装
置19に送信する。I/O装置17、I/O装置18、
I/O装置19はその信号を機械装置20に出力する。
【0003】
【発明が解決しようとしている課題】ところが、図10
のような従来のシステムでは、たとえばCPU装置4が
I/O装置8から直接信号を受信するようなことはでき
ない。もし受信しようとすればCPU装置4とCPU装
置5の間を別の通信線1で結び、I/O装置8−通信線
3−CPU装置5−通信線1−CPU装置4の経路で受
信することになり、余計な通信線を経由するために通信
効率が悪い。これは階層構成システムの欠点である。ま
た、図11のような従来のシステムでは、各CPU装置
は各I/O装置を共用することができ、またバス信号線
14を介して自由に交信することができる。このためC
PU装置の多重化を行うことが可能であるし、CPU装
置の負荷を分散することも可能であるが、IOP装置1
5が故障すれば、このシステムは全体が停止してしまう
という重大なウイークポイントがある。そこで、本発明
は、CPUの多重化、CPU間の負荷分散、システムの
拡張を容易にする方法を提供しようとするものである。
のような従来のシステムでは、たとえばCPU装置4が
I/O装置8から直接信号を受信するようなことはでき
ない。もし受信しようとすればCPU装置4とCPU装
置5の間を別の通信線1で結び、I/O装置8−通信線
3−CPU装置5−通信線1−CPU装置4の経路で受
信することになり、余計な通信線を経由するために通信
効率が悪い。これは階層構成システムの欠点である。ま
た、図11のような従来のシステムでは、各CPU装置
は各I/O装置を共用することができ、またバス信号線
14を介して自由に交信することができる。このためC
PU装置の多重化を行うことが可能であるし、CPU装
置の負荷を分散することも可能であるが、IOP装置1
5が故障すれば、このシステムは全体が停止してしまう
という重大なウイークポイントがある。そこで、本発明
は、CPUの多重化、CPU間の負荷分散、システムの
拡張を容易にする方法を提供しようとするものである。
【0004】
【課題を解決するための手段】上記問題を解決するた
め、本発明による第1の手段は、複数のシーケンスプロ
グラムを内蔵し、論理演算を行う複数のCPU装置と、
制御対象である機械装置の信号のインタフェース処理を
行う複数のI/O装置とが通信線を介して結合され、メ
ッセージの交信は一斉放送通信で行い、前記各装置間で
定められた順序で各装置がトークンを授受するトークン
リング方式で前記メッセージの送信を行うようにしたシ
ーケンスコントローラシステムにおいて、全てのCPU
装置およびI/O装置が直接接続された1本の伝送ライ
ンと、各I/O装置に内蔵されたCPUと、全てのCP
U装置およびI/O装置に少なくとも1つ以上内蔵さ
れ、前記各I/O装置に属する入力信号メッセージおよ
び出力信号メッセージに含まれるデータを格納するデー
タ用バッファを有するソフトウェアモジュールと、前記
入力信号メッセージおよび前記出力信号メッセージに含
まれ、前記ソフトウェアモジュールが前記各メッセージ
の送信元を判断できる識別コードと、前記全てのCPU
装置およびI/O装置に内蔵され、1つのメッセージが
送信または受信されるとそのメッセージに対応する全て
のビットが1になるフラグビットから構成される入力信
号メッセージ用および出力信号メッセージ用同期フラグ
とを備え、各I/O装置は、前記入力信号メッセージ用
同期フラグが全て0になると前記機械装置から信号の入
力を開始し、各CPU装置は前記入力信号メッセージ用
同期フラグが全て1になると論理演算を開始し、各I/
O装置は、前記出力信号メッセージ用同期フラグが全て
1になると前記機械装置へ信号の出力を開始する。本発
明の第2手段は、第1の手段に、更に同一ソフトウェア
モジュールを複数のCPUに内蔵させ、各ソフトウェア
モジュールに対応する出力信号メッセージ用同期フラグ
が0である時のみ出力信号メッセージを送信する機能を
追加する。
め、本発明による第1の手段は、複数のシーケンスプロ
グラムを内蔵し、論理演算を行う複数のCPU装置と、
制御対象である機械装置の信号のインタフェース処理を
行う複数のI/O装置とが通信線を介して結合され、メ
ッセージの交信は一斉放送通信で行い、前記各装置間で
定められた順序で各装置がトークンを授受するトークン
リング方式で前記メッセージの送信を行うようにしたシ
ーケンスコントローラシステムにおいて、全てのCPU
装置およびI/O装置が直接接続された1本の伝送ライ
ンと、各I/O装置に内蔵されたCPUと、全てのCP
U装置およびI/O装置に少なくとも1つ以上内蔵さ
れ、前記各I/O装置に属する入力信号メッセージおよ
び出力信号メッセージに含まれるデータを格納するデー
タ用バッファを有するソフトウェアモジュールと、前記
入力信号メッセージおよび前記出力信号メッセージに含
まれ、前記ソフトウェアモジュールが前記各メッセージ
の送信元を判断できる識別コードと、前記全てのCPU
装置およびI/O装置に内蔵され、1つのメッセージが
送信または受信されるとそのメッセージに対応する全て
のビットが1になるフラグビットから構成される入力信
号メッセージ用および出力信号メッセージ用同期フラグ
とを備え、各I/O装置は、前記入力信号メッセージ用
同期フラグが全て0になると前記機械装置から信号の入
力を開始し、各CPU装置は前記入力信号メッセージ用
同期フラグが全て1になると論理演算を開始し、各I/
O装置は、前記出力信号メッセージ用同期フラグが全て
1になると前記機械装置へ信号の出力を開始する。本発
明の第2手段は、第1の手段に、更に同一ソフトウェア
モジュールを複数のCPUに内蔵させ、各ソフトウェア
モジュールに対応する出力信号メッセージ用同期フラグ
が0である時のみ出力信号メッセージを送信する機能を
追加する。
【0005】
【作用】上記の手段により、I/O装置の通信線上の物
理的な位置が変更されても、CPU装置の設定変更やC
PU装置内のシーケンス処理プログラムの変更をする必
要がない。シーケンス処理プログラムが他のCPU装置
に移されたとしても、I/O装置の設定変更をする必要
がない。通信線上に新しいCPU装置やI/O装置が追
加されても、従来から存在するCPU装置の設定変更
や、CPU装置内のシーケンス処理プログラムの変更
や、I/O装置の設定変更をする必要がない。CPU装
置単位の多重化ではなく、シーケンス処理プログラム単
位の多重化が可能となり、きめ細かい多重化システムが
実現可能である。しかもシステム稼働開始後に必要なシ
ーケンスプログラムを多重化することも容易である。ま
た稼働開始後に負荷の大きい( 処理時間の長い) シーケ
ンス処理プログラムが発見された場合、そのプログラム
を負荷の軽いCPU装置にうつしても、他のプログラム
やハードウェアの設定を変更する必要がない。
理的な位置が変更されても、CPU装置の設定変更やC
PU装置内のシーケンス処理プログラムの変更をする必
要がない。シーケンス処理プログラムが他のCPU装置
に移されたとしても、I/O装置の設定変更をする必要
がない。通信線上に新しいCPU装置やI/O装置が追
加されても、従来から存在するCPU装置の設定変更
や、CPU装置内のシーケンス処理プログラムの変更
や、I/O装置の設定変更をする必要がない。CPU装
置単位の多重化ではなく、シーケンス処理プログラム単
位の多重化が可能となり、きめ細かい多重化システムが
実現可能である。しかもシステム稼働開始後に必要なシ
ーケンスプログラムを多重化することも容易である。ま
た稼働開始後に負荷の大きい( 処理時間の長い) シーケ
ンス処理プログラムが発見された場合、そのプログラム
を負荷の軽いCPU装置にうつしても、他のプログラム
やハードウェアの設定を変更する必要がない。
【0006】
【実施例】以下、本発明の実施例を図に基づいて説明す
る。図1は、各CPU装置、各I/O装置を通信線に直
接接続した構成を持つ、シーケンスコントローラのシス
テム例で、おもにシステムの物理的な構成を説明する。
図1を参照すると、I/O1装置25は機械装置34か
らI1入力信号28を入力し、O1出力信号29を機械
装置34に出力する。I/O2装置26は機械装置34
からI2入力信号30を入力し、O2出力信号31を機
械装置34に出力する。I/O3装置27は機械装置3
4からI3入力信号32を入力し、O3出力信号33を
機械装置34に出力する。I/O1装置25、I/O2
装置26、I/O3装置27は、それぞれI1入力信号
28、I2入力信号30、I3入力信号32を通信線2
4を経由してCPU1装置21、CPU2装置22、C
PU3装置23に送信する。各CPU装置はその信号に
論理演算を行い、演算結果であるO1出力信号29、O
2出力信号31、O3出力信号33を、それぞれI/O
1装置25、I/O2装置26、I/O3装置27に通
信線24を経由して送信する。このように全CPU装置
と全I/O装置が一つの信号線に直接接続されているた
めシステム構成は、CPU装置間の交信はもとより、C
PU装置とI/O装置間の交信を自由に行うことや、各
CPU装置が複数のI/O装置を共用したり、CPU装
置を多重化したり、 あるいは既存のハードウェアとソフ
トウェアを変更することなく新たなCPU装置やI/O
装置を増設することができるようにするための前提とな
る。伝送ラインはシリアル通信線あるいはパラレル信号
バスでもよい。図2は、図1で示すシステムの論理的な
構成を説明するための図である。図2で用いられるソフ
トウェアモジュールについては図4で定義する。I/O
1装置25はI1入力信号を識別コードIM1とともに
入力信号メッセージ41の形でP1ソフトウェアモジュ
ール38に送信する。P1ソフトウェアモジュール38
はI1入力信号に対して論理演算を行い、その演算結果
としてのO1出力信号を識別コードOM1とともに出力
メッセージ42の形でI/O1装置25に送信する。I
/O2装置26はI2入力信号を識別コードIM2とと
もに入力信号メッセージ43の形でP2ソフトウェアモ
ジュール39に送信する。P2ソフトウェアモジュール
39はI2入力信号に対して論理演算を行い、その演算
結果としてのO2出力信号を識別コードOM2とともに
出力信号メッセージ44の形でI/O2装置26に送信
する。I/O3装置27はI3入力信号を識別コードI
M3とともに、入力信号メッセージ45の形でP3ソフ
トウェアモジュール40に送信する。P3ソフトウェア
モジュール40はI3入力信号に対して論理演算を行
い、その演算結果としてのO3出力信号を識別コードO
M3とともに出力メッセージ46の形でI/O3装置2
7に送信する。P1ソフトウェアモジュール38はCP
U1装置21内とCPU2装置22内に存在する。P2
ソフトウェアモジュール39はCPU1装置21、CP
U2装置22、およびCPU3装置23に存在する。P
3ソフトウェアモジュール40はCPU3装置23にの
み存在する。このように各ソフトウェアモジュールは複
数のCPU装置に重複して存在する。P1ソフトウェア
モジュール38はIM1入力信号メッセージ41のみに
応答する。P2ソフトウェアモジュール39はIM2入
力信号メッセージ43のみに応答する。P3ソフトウェ
アモジュール40はIM3入力信号メッセージ45のみ
に応答する。そしてソフトウェアモジュールとメッセー
ジの関係はその物理的容器であるCPU装置とは無関係
である。またI/O装置とCPU装置の間で交信される
メッセージは、物理的な通信アドレスを特定しない一斉
放送通信の形で行われる。従って、たとえばCPU1装
置21にあるP1ソフトウェアモジュール38をCPU
3装置23に移してもハードウェアやシステム構成に関
わるソフトウェアの変更をする必要がない。図3では,
I/O1装置25の機能構成を示す図である。I/O2
装置26と、I/O3装置27の機能構成もI/O1装
置と同様であるので、以下I/O1装置25についての
み説明する。図3において、25はI/O1装置、50
は通信インタフェース、51は制御プログラム、52は
マイクロプロセッサで制御プログラム51に従って動作
する。53はI/O装置からの入力信号および出力信号
の送出しのタイミングを判断するための同期フラグで、
図5で詳述する。55はソフトウェアモジュールで、I
B1入力信号バッファ56、OB1出力信号バッファ5
7およびシーケンスプログラム58とから構成されてい
る。次に動作について説明する。マイクロプロセッサ5
2は制御プログラム51に従って動作する。制御プログ
ラム51はI/O1装置25内の全体を制御するための
基本プログラムで、その詳細は図8の説明でふれる。マ
イクロプロセッサ52は入出力インターフェース54に
よって機械装置34からI1入力信号28を入力し、そ
の信号をIB1入力信号バッファ56に格納する。次に
IB1入力信号バッファ56内のI1入力信号を識別コ
ードIM1とともに入力信号メッセージ41の形で通信
インターフェース50によって通信線に送出する。逆
に、通信インターフェース50がO1出力信号と識別コ
ードOM1とを含む出力信号メッセージ42を受信する
と、マイクロプロセッサ52は出力信号メッセージ42
の中のO1出力信号をOB1出力信号バッファ57に格
納する。次にマイクロプロセッサはOB1出力信号バッ
ファ57の中のO1出力信号29を読み出し、入出力イ
ンターフェース54を介して機械装置34に出力する。
図4はCPU1装置21の機能構成を示す図である。C
PU2装置22、CPU3装置23の構成もCPU1装
置21と同じであるので、以下CPU1装置21につい
てのみ説明する。図4において、38、39は図2で説
明したように、CPU1装置に内蔵されているソフトウ
ェアモジュールで、その構成を、ソフトウェアモジュー
ル38についていうと、63はI1入力信号を格納する
IB1入力信号バッファ、64はO1出力信号を格納す
るOB1出力信号バッファ、65はシーケンスプログラ
ムである。次に動作について説明する。マイクロプロセ
ッサ70は制御プログラム71に従って動作する。制御
プログラム71はCPU1装置21内の全体を制御する
ための基本プログラムで、その詳細は図9の説明でふれ
る。通信インターフェース72が入力信号メッセージ4
1を受信すると、マイクロプロセッサ70は入力信号メ
ッセージ41の中のI1入力信号をP1ソフトウェアモ
ジュール38の中のIB1入力信号バッファ63に格納
する。通信インターフェース72が入力信号メッセージ
43を受信すると、マイクロプロセッサ70は入力信号
メッセージ43の中のI2入力信号をP2ソフトウェア
モジュール39の中のIB2入力信号バッファ66に格
納する。P1ソフトウェアモジュール38とP2ソフト
ウェアモジュール39が必要とするI1入力信号とI2
入力信号が揃うと、マイクロプロセッサ70はP1ソフ
トウェアモジュールのシーケンスプログラム65を実行
する。シーケンスプログラム65はI1入力信号に対す
る論理演算を行い、その演算結果であるO1出力信号を
OB1出力信号バッファ64に格納する。次にマイクロ
プロセッサ70はOB1出力信号バッファからO1信号
を読み出し、通信インターフェース72によって識別コ
ードOM1とともに出力信号メッセージ42の形で通信
線に送出する。続いてマイクロプロセッサ70はP2ソ
フトウェアモジュールのシーケンスプログラム68を実
行する。シーケンスプログラム68はI2入力信号に対
する論理演算を行い、その演算結果であるO2出力信号
をOB2出力信号バッファ67に格納する。次にマイク
ロプロセッサ70はOB2出力信号バッファからO2出
力信号を読み出し、通信インターフェース72によって
識別コードOM2とともに出力信号メッセージ44の形
で通信線に送出する。図5は図3の同期フラグ53や図
4の同期フラグ69の構成を示す図である。この同期フ
ラグは全てのCPU装置、全てのI/O装置が有し、同
じビット構成をしている。図5において、IF1フラグ
ビット77は、I/O1装置25がIM1入力信号メッ
セージ41を送信した時、および他の全ての装置(CP
U装置、I/O装置を含む)がIM1入力信号メッセー
ジ41を受信した時にそれぞれの装置の中で1になる。
IF2フラグビット78は、I/O2装置26がIM2
入力信号メッセージ43を送信した時、および他の全て
の装置がIM2入力信号メッセージ43を受信した時に
それぞれの装置の中で1になる。IF3フラグビット7
9は、I/O3装置27がIM3入力信号メッセージ4
5を送信した時、および他の全ての装置がIM3入力信
号メッセージ45を受信した時にそれぞれの装置の中で
1になる。OF1フラグビット80は、P1ソフトウェ
アモジュール38がOM1出力信号メッセージ42を送
信した時、および他の全ての装置がOM1出力信号メッ
セージ42を受信した時にそれぞれの装置の中で1にな
る。OF2フラグビット81は、P2ソフトウェアモジ
ュール39がOM2出力信号メッセージ44を送信した
時、および他の全ての装置がOM2出力信号メッセージ
44を受信した時にそれぞれの装置の中で1になる。O
F3フラグビット82は、P3ソフトウェアモジュール
40がOM3出力信号メッセージ46を送信した時、お
よび他の全ての装置がOM3出力信号メッセージ46を
受信した時にそれぞれの装置の中で1になる。同期フラ
グの働きについては図8、図9で詳述する。図6はI/
O装置とCPU装置がメッセージの送信権を獲得する順
番を示すもので、本発明ではトークンリング方式を用い
る。以下、最初I/O1装置が送信権を獲得していたと
して説明する。I/O1装置がIM1入力信号メッセー
ジを送信し終わると、続いて送信権をI/O2装置に譲
るためのトークンを送信する。I/O2装置はそのトー
クンを受信すると送信権を獲得したことになり、I/O
2装置はIM2入力信号メッセージを送信する。その送
信が終わると送信権をI/O3装置に譲るためのトーク
ンを送信する。以下同様にCPU1装置、CPU2装
置、CPU3装置と送信権が譲られていき、再びI/O
1装置が送信権を獲得する。このような動作がエンドレ
スで周期的に行われる。図7はシステム全体の動作をタ
イムチャートで表現したものである。図9の左端( 時間
的に古い方) から説明する。最初にI/O1装置25が
IM1入力信号メッセージ41を送信する。このメッセ
ージはI/O1装置以外の全装置が受信する。CPU1
装置21では図4のマイクロプロセッサ70はIM1入
力信号メッセージに応答するP1ソフトウェアモジュー
ル38が存在するので、受信したIM1入力信号メッセ
ージの中のI1入力信号をIB1入力信号バッファ63
に格納する。図2に示すように、CPU2装置22内に
もIM1入力信号メッセージに応答するP1ソフトウェ
アモジュール38が存在するため、CPU1装置21と
同様のことが起こる。つまりCPU2装置22のマイク
ロプロセッサは受信したIM1入力信号メッセージの中
のI1入力信号をP1ソフトウェアモジュールの入力信
号バッファに格納する。図2に示すようにCPU3装置
23内にはIM1入力信号メッセージに応答するP1ソ
フトウェアモジュールが存在しない。従ってCPU3装
置23内のマイクロプロセッサは受信したIM1入力信
号メッセージの中のI1入力信号は格納しない。次にI
/O2装置26がIM2入力信号メッセージ43を送信
する。このメッセージもI/O2装置以外の全装置が受
信する。図2に示すように各CPU装置の中にはIM2
入力信号メッセージに応答するP2ソフトウェアモジュ
ール39が存在するため、各CPU装置内のマイクロプ
ロセッサは受信したIM2入力信号メッセージの中のI
2入力信号をP2ソフトウェアモジュールの入力信号バ
ッファに格納する。次にI/O3装置がIM3入力信号
メッセージ45を送信する。このメッセージもI/O3
装置以外の全装置が受信する。図2に示すようにCPU
3装置23の中にはIM3入力信号メッセージに応答す
るP3ソフトウェアモジュールが存在するため、CPU
3装置23のマイクロプロセッサは受信したIM3入力
信号メッセージの中のI3入力信号をP3ソフトウェア
モジュールの入力信号バッファに格納する。CPU1装
置とCPU2装置の中にはIM3入力信号メッセージに
応答するプログラムが存在しないため、両CPU装置の
マイクロプロセッサは受信したIM3入力信号メッセー
ジの中のI3入力信号を格納しない。次に全I/O装置
はIM1入力信号メッセージ41、IM2入力信号メッ
セージ43、IM3入力信号メッセージ45の全メッセ
ージを送信完了すると一斉に機械装置からI1入力信号
86、I2入力信号87、I3入力信号88の各信号を
入力し、各I/O装置の入力信号バッファに格納する。
このとき入力した信号は次の周期で使用される。次に各
CPU装置ではIM1入力信号メッセージ41、IM2
入力信号メッセージ43、IM3入力信号メッセージ4
5の全メッセージを受信完了すると、各CPU装置のマ
イクロプロセッサはシーケンスプログラムの実行を一斉
に開始する。CPU1装置とCPU2装置では同一のシ
ーケンスプログラム65を同時に実行する(図89、9
0)。実行の結果CPU1装置はOM1出力信号メッセ
ージ42を送信する。しかし、CPU2装置はOM1出
力信号メッセージを送信しない。その理由は図6に示す
ようにCPU1装置の方が先に送信権を獲得し、OM1
出力信号メッセージを送信する(図の42)から、CP
U2装置はOM1出力信号メッセージを送信する必要が
ない。このあとCPU1装置とCPU2装置は同一のシ
ーケンスプログラム68の実行を開始する(図92、9
3)。ここでもしCPU1装置が故障していた場合はC
PU2装置がOM1メッセージをCPU1装置のかわり
に送信する、いわゆる多重化が容易に達成される。CP
U3装置はP3ソフトウェアモジュールの中のシーケン
スプログラムを実行しOM3出力信号メッセージを送信
する(図の46)。CPU3装置が続いてP2シーケン
スプログラムを実行する(図の94)。このP2シーケ
ンスプログラムの実行が終わった時、OM2出力信号メ
ッセージ44は他のCPU装置から送信されていないた
め、CPU3装置が送信する。この送信が終わった時C
PU1装置とCPU2装置ではまだP2シーケンスプロ
グラムを実行中であるが、この両CPU装置がOM2出
力信号メッセージ44を受信すると両CPU装置のマイ
クロプロセッサがP2シーケンスプログラムの実行を途
中で取りやめる。これが負荷の平準化の例である。最後
に全I/O装置はOM1出力信号メッセージ42、OM
2出力信号メッセージ44、OM3出力信号メッセージ
46の全メッセージを受信したということで、各I/O
装置の出力信号バッファの信号を機械装置に一斉に出力
する。その出力信号はO1出力信号98、O2出力信号
99、O3出力信号100である。以上で図1に示すシ
ーケンスコントローラシステムの1周期の動作が終わ
る。図8は図3に示すI/O1装置の制御プログラム5
1の処理内容を示す図である。図8において、処理内容
は処理1と処理2に分かれている。処理1は処理2に割
り込む形で実行される。処理1は通信インターフェース
が何かを受信した場合および何かを送信した場合に起動
される。処理2は処理1から起動される。まず、処理1
の内容を処理ステップの番号順に説明する。説明の中の
「n」は1、2、または3である。 101 処理1が起動されると、受信完了か送信完了か
を調べる。NOならば処理1は終わる。 102 トークンを受信したかどうかを調べる。 103 YESなら処理2を起動する。処理2はIMn
入力信号メッセージを送信する(ステップ117)。 104 IMn入力信号メッセージを受信または送信し
たかを調べる。 105 YESならIMn入力信号メッセージに対応す
るIFnフラグビットを1にする。 106 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 107 YESなら処理2を起動する。処理2は機械装
置から信号を入力する(ステップ120)。 108 OMn出力信号メッセージを受信したかどうか
を調べる。 109 YESならOFnフラグビットを1にする。 110 OMn出力信号メッセージが自分のI/O装置
で機械装置に出力すべきものであるかどうかを調べる。 111 YESならOMn出力信号メッセージの中のO
n出力信号をOBn出力信号バッファに格納する。 112 フラグビットOF1、OF2、OF3の全てが
1かどうか調べる。 113 YESなら処理2を起動する。処理2は機械装
置に信号を出力する(ステップ123)。次に処理2の
内容を説明する。 114 このI/O装置がスタートしたときに、最初に
機械装置からIn入力信号を入力し、それをIBn入力
信号バッファに格納する。 115 トークンを受信しているかどうかを調べる。 116 NOであれば処理1の103から起動されるま
で待つ。 117 YESであればIBn入力信号バッファからI
n入力信号を読み出し、それをIMn入力信号メッセー
ジの形で送信する。 119 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 118 NOであれば処理1の107から起動されるま
で待つ。 120 YESであれば114と同じ処理を行う。ここ
で入力された信号は次のサイクルで使用される。119
の目的は機械装置から信号を入力するタイミングを同期
化するためである。 121 フラグビットOF1、OF2、OF3の全てが
1かどうか調べる。 122 NOであれば処理1の113から起動されるま
で待つ。 123 YESであればOBn出力信号バッファのOn
信号を読み出し、そのOn信号を機械装置に出力する。
なお、121の目的は機械装置に信号を出力するタイミ
ングを同期化するためである。 124 次のサイクルの処理に備えて全ての同期フラグ
ビットを0にする。 図9は図4に示すCPU1装置の制御プログラム71の
処理内容を示す図である。図9において、処理内容は処
理1と処理2に分かれている。処理1は処理2に割り込
む形で実行される。処理1は通信インターフェースが何
かを受信した場合および何かを送信した場合に起動され
る。処理2は処理1から起動される。まず、処理1の内
容を説明する。以下図8と同様の方法で説明する。 125 処理1が起動されると、受信完了か送信完了か
を調べる。NOならば処理1は終わる。 126 IMn入力信号メッセージを受信したかを調べ
る。 127 YESならIMn入力信号メッセージに対応す
るIFnフラグビットを1にする。 128 IMn入力信号メッセージに応答すべきPnソ
フトウェアモジュールが自分のCPU装置内にあるかど
うかを調べる。 129 YESならIMn入力信号メッセージの中のI
n信号をPnソフトウェアモジュールのIBn入力信号
バッファに格納する。 130 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 131 YESなら処理2を起動する。処理2はプログ
ラムの実行を開始する。 132 トークンを受信しているかどうかを調べる。 133 YESなら処理2を起動する。処理2はプログ
ラムの実行結果であるOMn出力信号メッセージを送信
する。 134 OMnメッセージを受信または送信したかを調
べる。 135 YESならOFn同期フラグビットを1にす
る。 136 OFn同期フラグビットに対応するPnプログ
ラムが実行中かどうかを調べる。 137 YESであればPnプログラムを中断する。つ
まり処理2の143を強制的に終わらせる。 138 同期フラグビットOF1、OF2、OF3の全
てが1かどうか調べる。 139 YESなら処理2を起動する。次に処理2の内
容を説明する。 140 同期フラグビットIF1、IF2、IF3が全
て1かどうかを調べる。 141 NOなら処理1の131から起動されるまで待
つ。 142 いまから実行しようとするPnシーケンスプロ
グラムに対応するOFnフラグビットが1かどうかを調
べる。つまりPnシーケンスプログラムの処理結果であ
るOMn出力信号メッセージが他のCPU装置からすで
に送信されたかどうかを調べる。 143 NOならばPnシーケンスプログラムを実行す
る。 144 トークンを受信しているかどうかを調べる。 145 NOなら処理1の133から起動されるまで待
つ。 146 いま実行したPnシーケンスプログラムに対応
するOFnフラグビットが1かどうかを調べる。つまり
Pnシーケンスプログラムの処理結果であるOMn出力
信号メッセージが他のCPU装置からすでに送信された
かどうかを調べる。 147 NOならOMn出力信号メッセージを送信す
る。 148 このCPU装置内にある全プログラムを実行し
たかどうかを調べる。残りのプログラムがあれば処理2
の142にもどって実行する。 149 全てのプログラムの実行が終われば、同期フラ
グビットOF1、OF2、OF3の全てが1かどうか調
べる。 150 NOならば処理1の139が起動するまで待
つ。 151 YESなら全同期フラグビットを0にして、次
のサイクルに備える。
る。図1は、各CPU装置、各I/O装置を通信線に直
接接続した構成を持つ、シーケンスコントローラのシス
テム例で、おもにシステムの物理的な構成を説明する。
図1を参照すると、I/O1装置25は機械装置34か
らI1入力信号28を入力し、O1出力信号29を機械
装置34に出力する。I/O2装置26は機械装置34
からI2入力信号30を入力し、O2出力信号31を機
械装置34に出力する。I/O3装置27は機械装置3
4からI3入力信号32を入力し、O3出力信号33を
機械装置34に出力する。I/O1装置25、I/O2
装置26、I/O3装置27は、それぞれI1入力信号
28、I2入力信号30、I3入力信号32を通信線2
4を経由してCPU1装置21、CPU2装置22、C
PU3装置23に送信する。各CPU装置はその信号に
論理演算を行い、演算結果であるO1出力信号29、O
2出力信号31、O3出力信号33を、それぞれI/O
1装置25、I/O2装置26、I/O3装置27に通
信線24を経由して送信する。このように全CPU装置
と全I/O装置が一つの信号線に直接接続されているた
めシステム構成は、CPU装置間の交信はもとより、C
PU装置とI/O装置間の交信を自由に行うことや、各
CPU装置が複数のI/O装置を共用したり、CPU装
置を多重化したり、 あるいは既存のハードウェアとソフ
トウェアを変更することなく新たなCPU装置やI/O
装置を増設することができるようにするための前提とな
る。伝送ラインはシリアル通信線あるいはパラレル信号
バスでもよい。図2は、図1で示すシステムの論理的な
構成を説明するための図である。図2で用いられるソフ
トウェアモジュールについては図4で定義する。I/O
1装置25はI1入力信号を識別コードIM1とともに
入力信号メッセージ41の形でP1ソフトウェアモジュ
ール38に送信する。P1ソフトウェアモジュール38
はI1入力信号に対して論理演算を行い、その演算結果
としてのO1出力信号を識別コードOM1とともに出力
メッセージ42の形でI/O1装置25に送信する。I
/O2装置26はI2入力信号を識別コードIM2とと
もに入力信号メッセージ43の形でP2ソフトウェアモ
ジュール39に送信する。P2ソフトウェアモジュール
39はI2入力信号に対して論理演算を行い、その演算
結果としてのO2出力信号を識別コードOM2とともに
出力信号メッセージ44の形でI/O2装置26に送信
する。I/O3装置27はI3入力信号を識別コードI
M3とともに、入力信号メッセージ45の形でP3ソフ
トウェアモジュール40に送信する。P3ソフトウェア
モジュール40はI3入力信号に対して論理演算を行
い、その演算結果としてのO3出力信号を識別コードO
M3とともに出力メッセージ46の形でI/O3装置2
7に送信する。P1ソフトウェアモジュール38はCP
U1装置21内とCPU2装置22内に存在する。P2
ソフトウェアモジュール39はCPU1装置21、CP
U2装置22、およびCPU3装置23に存在する。P
3ソフトウェアモジュール40はCPU3装置23にの
み存在する。このように各ソフトウェアモジュールは複
数のCPU装置に重複して存在する。P1ソフトウェア
モジュール38はIM1入力信号メッセージ41のみに
応答する。P2ソフトウェアモジュール39はIM2入
力信号メッセージ43のみに応答する。P3ソフトウェ
アモジュール40はIM3入力信号メッセージ45のみ
に応答する。そしてソフトウェアモジュールとメッセー
ジの関係はその物理的容器であるCPU装置とは無関係
である。またI/O装置とCPU装置の間で交信される
メッセージは、物理的な通信アドレスを特定しない一斉
放送通信の形で行われる。従って、たとえばCPU1装
置21にあるP1ソフトウェアモジュール38をCPU
3装置23に移してもハードウェアやシステム構成に関
わるソフトウェアの変更をする必要がない。図3では,
I/O1装置25の機能構成を示す図である。I/O2
装置26と、I/O3装置27の機能構成もI/O1装
置と同様であるので、以下I/O1装置25についての
み説明する。図3において、25はI/O1装置、50
は通信インタフェース、51は制御プログラム、52は
マイクロプロセッサで制御プログラム51に従って動作
する。53はI/O装置からの入力信号および出力信号
の送出しのタイミングを判断するための同期フラグで、
図5で詳述する。55はソフトウェアモジュールで、I
B1入力信号バッファ56、OB1出力信号バッファ5
7およびシーケンスプログラム58とから構成されてい
る。次に動作について説明する。マイクロプロセッサ5
2は制御プログラム51に従って動作する。制御プログ
ラム51はI/O1装置25内の全体を制御するための
基本プログラムで、その詳細は図8の説明でふれる。マ
イクロプロセッサ52は入出力インターフェース54に
よって機械装置34からI1入力信号28を入力し、そ
の信号をIB1入力信号バッファ56に格納する。次に
IB1入力信号バッファ56内のI1入力信号を識別コ
ードIM1とともに入力信号メッセージ41の形で通信
インターフェース50によって通信線に送出する。逆
に、通信インターフェース50がO1出力信号と識別コ
ードOM1とを含む出力信号メッセージ42を受信する
と、マイクロプロセッサ52は出力信号メッセージ42
の中のO1出力信号をOB1出力信号バッファ57に格
納する。次にマイクロプロセッサはOB1出力信号バッ
ファ57の中のO1出力信号29を読み出し、入出力イ
ンターフェース54を介して機械装置34に出力する。
図4はCPU1装置21の機能構成を示す図である。C
PU2装置22、CPU3装置23の構成もCPU1装
置21と同じであるので、以下CPU1装置21につい
てのみ説明する。図4において、38、39は図2で説
明したように、CPU1装置に内蔵されているソフトウ
ェアモジュールで、その構成を、ソフトウェアモジュー
ル38についていうと、63はI1入力信号を格納する
IB1入力信号バッファ、64はO1出力信号を格納す
るOB1出力信号バッファ、65はシーケンスプログラ
ムである。次に動作について説明する。マイクロプロセ
ッサ70は制御プログラム71に従って動作する。制御
プログラム71はCPU1装置21内の全体を制御する
ための基本プログラムで、その詳細は図9の説明でふれ
る。通信インターフェース72が入力信号メッセージ4
1を受信すると、マイクロプロセッサ70は入力信号メ
ッセージ41の中のI1入力信号をP1ソフトウェアモ
ジュール38の中のIB1入力信号バッファ63に格納
する。通信インターフェース72が入力信号メッセージ
43を受信すると、マイクロプロセッサ70は入力信号
メッセージ43の中のI2入力信号をP2ソフトウェア
モジュール39の中のIB2入力信号バッファ66に格
納する。P1ソフトウェアモジュール38とP2ソフト
ウェアモジュール39が必要とするI1入力信号とI2
入力信号が揃うと、マイクロプロセッサ70はP1ソフ
トウェアモジュールのシーケンスプログラム65を実行
する。シーケンスプログラム65はI1入力信号に対す
る論理演算を行い、その演算結果であるO1出力信号を
OB1出力信号バッファ64に格納する。次にマイクロ
プロセッサ70はOB1出力信号バッファからO1信号
を読み出し、通信インターフェース72によって識別コ
ードOM1とともに出力信号メッセージ42の形で通信
線に送出する。続いてマイクロプロセッサ70はP2ソ
フトウェアモジュールのシーケンスプログラム68を実
行する。シーケンスプログラム68はI2入力信号に対
する論理演算を行い、その演算結果であるO2出力信号
をOB2出力信号バッファ67に格納する。次にマイク
ロプロセッサ70はOB2出力信号バッファからO2出
力信号を読み出し、通信インターフェース72によって
識別コードOM2とともに出力信号メッセージ44の形
で通信線に送出する。図5は図3の同期フラグ53や図
4の同期フラグ69の構成を示す図である。この同期フ
ラグは全てのCPU装置、全てのI/O装置が有し、同
じビット構成をしている。図5において、IF1フラグ
ビット77は、I/O1装置25がIM1入力信号メッ
セージ41を送信した時、および他の全ての装置(CP
U装置、I/O装置を含む)がIM1入力信号メッセー
ジ41を受信した時にそれぞれの装置の中で1になる。
IF2フラグビット78は、I/O2装置26がIM2
入力信号メッセージ43を送信した時、および他の全て
の装置がIM2入力信号メッセージ43を受信した時に
それぞれの装置の中で1になる。IF3フラグビット7
9は、I/O3装置27がIM3入力信号メッセージ4
5を送信した時、および他の全ての装置がIM3入力信
号メッセージ45を受信した時にそれぞれの装置の中で
1になる。OF1フラグビット80は、P1ソフトウェ
アモジュール38がOM1出力信号メッセージ42を送
信した時、および他の全ての装置がOM1出力信号メッ
セージ42を受信した時にそれぞれの装置の中で1にな
る。OF2フラグビット81は、P2ソフトウェアモジ
ュール39がOM2出力信号メッセージ44を送信した
時、および他の全ての装置がOM2出力信号メッセージ
44を受信した時にそれぞれの装置の中で1になる。O
F3フラグビット82は、P3ソフトウェアモジュール
40がOM3出力信号メッセージ46を送信した時、お
よび他の全ての装置がOM3出力信号メッセージ46を
受信した時にそれぞれの装置の中で1になる。同期フラ
グの働きについては図8、図9で詳述する。図6はI/
O装置とCPU装置がメッセージの送信権を獲得する順
番を示すもので、本発明ではトークンリング方式を用い
る。以下、最初I/O1装置が送信権を獲得していたと
して説明する。I/O1装置がIM1入力信号メッセー
ジを送信し終わると、続いて送信権をI/O2装置に譲
るためのトークンを送信する。I/O2装置はそのトー
クンを受信すると送信権を獲得したことになり、I/O
2装置はIM2入力信号メッセージを送信する。その送
信が終わると送信権をI/O3装置に譲るためのトーク
ンを送信する。以下同様にCPU1装置、CPU2装
置、CPU3装置と送信権が譲られていき、再びI/O
1装置が送信権を獲得する。このような動作がエンドレ
スで周期的に行われる。図7はシステム全体の動作をタ
イムチャートで表現したものである。図9の左端( 時間
的に古い方) から説明する。最初にI/O1装置25が
IM1入力信号メッセージ41を送信する。このメッセ
ージはI/O1装置以外の全装置が受信する。CPU1
装置21では図4のマイクロプロセッサ70はIM1入
力信号メッセージに応答するP1ソフトウェアモジュー
ル38が存在するので、受信したIM1入力信号メッセ
ージの中のI1入力信号をIB1入力信号バッファ63
に格納する。図2に示すように、CPU2装置22内に
もIM1入力信号メッセージに応答するP1ソフトウェ
アモジュール38が存在するため、CPU1装置21と
同様のことが起こる。つまりCPU2装置22のマイク
ロプロセッサは受信したIM1入力信号メッセージの中
のI1入力信号をP1ソフトウェアモジュールの入力信
号バッファに格納する。図2に示すようにCPU3装置
23内にはIM1入力信号メッセージに応答するP1ソ
フトウェアモジュールが存在しない。従ってCPU3装
置23内のマイクロプロセッサは受信したIM1入力信
号メッセージの中のI1入力信号は格納しない。次にI
/O2装置26がIM2入力信号メッセージ43を送信
する。このメッセージもI/O2装置以外の全装置が受
信する。図2に示すように各CPU装置の中にはIM2
入力信号メッセージに応答するP2ソフトウェアモジュ
ール39が存在するため、各CPU装置内のマイクロプ
ロセッサは受信したIM2入力信号メッセージの中のI
2入力信号をP2ソフトウェアモジュールの入力信号バ
ッファに格納する。次にI/O3装置がIM3入力信号
メッセージ45を送信する。このメッセージもI/O3
装置以外の全装置が受信する。図2に示すようにCPU
3装置23の中にはIM3入力信号メッセージに応答す
るP3ソフトウェアモジュールが存在するため、CPU
3装置23のマイクロプロセッサは受信したIM3入力
信号メッセージの中のI3入力信号をP3ソフトウェア
モジュールの入力信号バッファに格納する。CPU1装
置とCPU2装置の中にはIM3入力信号メッセージに
応答するプログラムが存在しないため、両CPU装置の
マイクロプロセッサは受信したIM3入力信号メッセー
ジの中のI3入力信号を格納しない。次に全I/O装置
はIM1入力信号メッセージ41、IM2入力信号メッ
セージ43、IM3入力信号メッセージ45の全メッセ
ージを送信完了すると一斉に機械装置からI1入力信号
86、I2入力信号87、I3入力信号88の各信号を
入力し、各I/O装置の入力信号バッファに格納する。
このとき入力した信号は次の周期で使用される。次に各
CPU装置ではIM1入力信号メッセージ41、IM2
入力信号メッセージ43、IM3入力信号メッセージ4
5の全メッセージを受信完了すると、各CPU装置のマ
イクロプロセッサはシーケンスプログラムの実行を一斉
に開始する。CPU1装置とCPU2装置では同一のシ
ーケンスプログラム65を同時に実行する(図89、9
0)。実行の結果CPU1装置はOM1出力信号メッセ
ージ42を送信する。しかし、CPU2装置はOM1出
力信号メッセージを送信しない。その理由は図6に示す
ようにCPU1装置の方が先に送信権を獲得し、OM1
出力信号メッセージを送信する(図の42)から、CP
U2装置はOM1出力信号メッセージを送信する必要が
ない。このあとCPU1装置とCPU2装置は同一のシ
ーケンスプログラム68の実行を開始する(図92、9
3)。ここでもしCPU1装置が故障していた場合はC
PU2装置がOM1メッセージをCPU1装置のかわり
に送信する、いわゆる多重化が容易に達成される。CP
U3装置はP3ソフトウェアモジュールの中のシーケン
スプログラムを実行しOM3出力信号メッセージを送信
する(図の46)。CPU3装置が続いてP2シーケン
スプログラムを実行する(図の94)。このP2シーケ
ンスプログラムの実行が終わった時、OM2出力信号メ
ッセージ44は他のCPU装置から送信されていないた
め、CPU3装置が送信する。この送信が終わった時C
PU1装置とCPU2装置ではまだP2シーケンスプロ
グラムを実行中であるが、この両CPU装置がOM2出
力信号メッセージ44を受信すると両CPU装置のマイ
クロプロセッサがP2シーケンスプログラムの実行を途
中で取りやめる。これが負荷の平準化の例である。最後
に全I/O装置はOM1出力信号メッセージ42、OM
2出力信号メッセージ44、OM3出力信号メッセージ
46の全メッセージを受信したということで、各I/O
装置の出力信号バッファの信号を機械装置に一斉に出力
する。その出力信号はO1出力信号98、O2出力信号
99、O3出力信号100である。以上で図1に示すシ
ーケンスコントローラシステムの1周期の動作が終わ
る。図8は図3に示すI/O1装置の制御プログラム5
1の処理内容を示す図である。図8において、処理内容
は処理1と処理2に分かれている。処理1は処理2に割
り込む形で実行される。処理1は通信インターフェース
が何かを受信した場合および何かを送信した場合に起動
される。処理2は処理1から起動される。まず、処理1
の内容を処理ステップの番号順に説明する。説明の中の
「n」は1、2、または3である。 101 処理1が起動されると、受信完了か送信完了か
を調べる。NOならば処理1は終わる。 102 トークンを受信したかどうかを調べる。 103 YESなら処理2を起動する。処理2はIMn
入力信号メッセージを送信する(ステップ117)。 104 IMn入力信号メッセージを受信または送信し
たかを調べる。 105 YESならIMn入力信号メッセージに対応す
るIFnフラグビットを1にする。 106 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 107 YESなら処理2を起動する。処理2は機械装
置から信号を入力する(ステップ120)。 108 OMn出力信号メッセージを受信したかどうか
を調べる。 109 YESならOFnフラグビットを1にする。 110 OMn出力信号メッセージが自分のI/O装置
で機械装置に出力すべきものであるかどうかを調べる。 111 YESならOMn出力信号メッセージの中のO
n出力信号をOBn出力信号バッファに格納する。 112 フラグビットOF1、OF2、OF3の全てが
1かどうか調べる。 113 YESなら処理2を起動する。処理2は機械装
置に信号を出力する(ステップ123)。次に処理2の
内容を説明する。 114 このI/O装置がスタートしたときに、最初に
機械装置からIn入力信号を入力し、それをIBn入力
信号バッファに格納する。 115 トークンを受信しているかどうかを調べる。 116 NOであれば処理1の103から起動されるま
で待つ。 117 YESであればIBn入力信号バッファからI
n入力信号を読み出し、それをIMn入力信号メッセー
ジの形で送信する。 119 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 118 NOであれば処理1の107から起動されるま
で待つ。 120 YESであれば114と同じ処理を行う。ここ
で入力された信号は次のサイクルで使用される。119
の目的は機械装置から信号を入力するタイミングを同期
化するためである。 121 フラグビットOF1、OF2、OF3の全てが
1かどうか調べる。 122 NOであれば処理1の113から起動されるま
で待つ。 123 YESであればOBn出力信号バッファのOn
信号を読み出し、そのOn信号を機械装置に出力する。
なお、121の目的は機械装置に信号を出力するタイミ
ングを同期化するためである。 124 次のサイクルの処理に備えて全ての同期フラグ
ビットを0にする。 図9は図4に示すCPU1装置の制御プログラム71の
処理内容を示す図である。図9において、処理内容は処
理1と処理2に分かれている。処理1は処理2に割り込
む形で実行される。処理1は通信インターフェースが何
かを受信した場合および何かを送信した場合に起動され
る。処理2は処理1から起動される。まず、処理1の内
容を説明する。以下図8と同様の方法で説明する。 125 処理1が起動されると、受信完了か送信完了か
を調べる。NOならば処理1は終わる。 126 IMn入力信号メッセージを受信したかを調べ
る。 127 YESならIMn入力信号メッセージに対応す
るIFnフラグビットを1にする。 128 IMn入力信号メッセージに応答すべきPnソ
フトウェアモジュールが自分のCPU装置内にあるかど
うかを調べる。 129 YESならIMn入力信号メッセージの中のI
n信号をPnソフトウェアモジュールのIBn入力信号
バッファに格納する。 130 フラグビットIF1、IF2、IF3が全て1
がどうか調べる。 131 YESなら処理2を起動する。処理2はプログ
ラムの実行を開始する。 132 トークンを受信しているかどうかを調べる。 133 YESなら処理2を起動する。処理2はプログ
ラムの実行結果であるOMn出力信号メッセージを送信
する。 134 OMnメッセージを受信または送信したかを調
べる。 135 YESならOFn同期フラグビットを1にす
る。 136 OFn同期フラグビットに対応するPnプログ
ラムが実行中かどうかを調べる。 137 YESであればPnプログラムを中断する。つ
まり処理2の143を強制的に終わらせる。 138 同期フラグビットOF1、OF2、OF3の全
てが1かどうか調べる。 139 YESなら処理2を起動する。次に処理2の内
容を説明する。 140 同期フラグビットIF1、IF2、IF3が全
て1かどうかを調べる。 141 NOなら処理1の131から起動されるまで待
つ。 142 いまから実行しようとするPnシーケンスプロ
グラムに対応するOFnフラグビットが1かどうかを調
べる。つまりPnシーケンスプログラムの処理結果であ
るOMn出力信号メッセージが他のCPU装置からすで
に送信されたかどうかを調べる。 143 NOならばPnシーケンスプログラムを実行す
る。 144 トークンを受信しているかどうかを調べる。 145 NOなら処理1の133から起動されるまで待
つ。 146 いま実行したPnシーケンスプログラムに対応
するOFnフラグビットが1かどうかを調べる。つまり
Pnシーケンスプログラムの処理結果であるOMn出力
信号メッセージが他のCPU装置からすでに送信された
かどうかを調べる。 147 NOならOMn出力信号メッセージを送信す
る。 148 このCPU装置内にある全プログラムを実行し
たかどうかを調べる。残りのプログラムがあれば処理2
の142にもどって実行する。 149 全てのプログラムの実行が終われば、同期フラ
グビットOF1、OF2、OF3の全てが1かどうか調
べる。 150 NOならば処理1の139が起動するまで待
つ。 151 YESなら全同期フラグビットを0にして、次
のサイクルに備える。
【0007】
【発明の効果】以上説明したように、従来のシーケンス
コントローラシステムでは、ソフトウェアがシステムの
物理構造に依存していたため、CPU装置の多重化の困
難さ、CPU装置間の負荷の平準化の困難さ、システム
の拡張に伴うソフトウェアの変更の困難さ等があった
が、本発明により、ソフトウェアをシステムの物理構造
から独立させることによって、ソフトウェアの柔軟性を
増し、それらの困難さを解消し、今後必要性が高まるフ
レキスブルなシステムを容易に実現することが可能にな
る。すなわち、I/O装置の通信線上の物理的な位置が
変更されても、CPU装置の設定変更やCPU装置内の
シーケンス処理プログラムの変更をする必要がない。シ
ーケンス処理プログラムが他のCPU装置に移されたと
しても、I/O装置の設定変更をする必要がない。通信
線上に新しいCPU装置やI/O装置が追加されても、
従来から存在するCPU装置の設定変更や、CPU装置
内のシーケンス処理プログラムの変更や、I/O装置の
設定変更をする必要がない。CPU装置単位の多重化で
はなく、シーケンス処理プログラム単位の多重化が可能
となり、きめ細かい多重化システムが実現可能である。
しかもシステム稼働開始後に必要なシーケンスプログラ
ムを多重化することも容易である。また稼働開始後に負
荷の大きい( 処理時間の長い) シーケンス処理プログラ
ムが発見された場合、そのプログラムを負荷の軽いCP
U装置にうつしても、他のプログラムやハードウェアの
設定を変更する必要がない。
コントローラシステムでは、ソフトウェアがシステムの
物理構造に依存していたため、CPU装置の多重化の困
難さ、CPU装置間の負荷の平準化の困難さ、システム
の拡張に伴うソフトウェアの変更の困難さ等があった
が、本発明により、ソフトウェアをシステムの物理構造
から独立させることによって、ソフトウェアの柔軟性を
増し、それらの困難さを解消し、今後必要性が高まるフ
レキスブルなシステムを容易に実現することが可能にな
る。すなわち、I/O装置の通信線上の物理的な位置が
変更されても、CPU装置の設定変更やCPU装置内の
シーケンス処理プログラムの変更をする必要がない。シ
ーケンス処理プログラムが他のCPU装置に移されたと
しても、I/O装置の設定変更をする必要がない。通信
線上に新しいCPU装置やI/O装置が追加されても、
従来から存在するCPU装置の設定変更や、CPU装置
内のシーケンス処理プログラムの変更や、I/O装置の
設定変更をする必要がない。CPU装置単位の多重化で
はなく、シーケンス処理プログラム単位の多重化が可能
となり、きめ細かい多重化システムが実現可能である。
しかもシステム稼働開始後に必要なシーケンスプログラ
ムを多重化することも容易である。また稼働開始後に負
荷の大きい( 処理時間の長い) シーケンス処理プログラ
ムが発見された場合、そのプログラムを負荷の軽いCP
U装置にうつしても、他のプログラムやハードウェアの
設定を変更する必要がない。
【図1】本発明によるシーケンスコントローラシステム
の実施例で、物理的構成を示す図。
の実施例で、物理的構成を示す図。
【図2】本発明によるシーケンスコントローラシステム
の実施例で、論理的構成を示す図。
の実施例で、論理的構成を示す図。
【図3】本発明によるI/O装置の構成図。
【図4】本発明によるCPU装置の構成図。
【図5】本発明によるCPU装置、I/O装置間の同期
をとるための同期フラグの構成図。
をとるための同期フラグの構成図。
【図6】CPU装置、I/O装置の送信権の巡回順序を
示す図。
示す図。
【図7】本発明によるシステム全体の動作を示す図。
【図8】本発明によるI/O装置の制御プログラムの処
理を示す図。
理を示す図。
【図9】本発明によるCPU装置の制御プログラムの処
理を示す図。
理を示す図。
【図10】従来のシーケンスコントローラシステムの構
成例を示す図。
成例を示す図。
【図11】従来のシーケンスコントローラシステムの構
成例を示す図。
成例を示す図。
21 CPU1装置 22 CPU2装置 23 CPU3装置 24 通信線 25 I/O1装置 26 I/O2装置 27 I/O3装置 34 機械装置 38 P1ソフトウェアモジュール 39 P2ソフトウェアモジュール 40 P3ソフトウェアモジュール 41、43、45 入力信号メッセージ 42、44、46 出力信号メッセージ 50、72 通信インタフェース 51、71 制御プログラム 52、70 マイクロプロセッサ 53、69 同期フラグ 54 ソフトウェアモジュール
Claims (2)
- 【請求項1】 複数のシーケンスプログラムを内蔵し、
論理演算を行う複数のCPU装置と、制御対象である機
械装置の信号のインタフェース処理を行う複数のI/O
装置とが通信線を介して結合され、メッセージの交信は
一斉放送通信で行い、前記各装置間で定められた順序で
各装置がトークンを授受するトークンリング方式で前記
メッセージの送信を行うようにしたシーケンスコントロ
ーラシステムにおいて、 全てのCPU装置およびI/O装置が直接接続された1
本の伝送ラインと、 各I/O装置に内蔵されたCPUと、 全てのCPU装置およびI/O装置に少なくとも1つ以
上内蔵され、前記各I/O装置に属する入力信号メッセ
ージおよび出力信号メッセージに含まれるデータを格納
するデータ用バッファを有するソフトウェアモジュール
と、 前記入力信号メッセージおよび前記出力信号メッセージ
に含まれ、前記ソフトウェアモジュールが前記各メッセ
ージの送信元を判断できる識別コードと、 前記全てのCPU装置およびI/O装置に内蔵され、1
つのメッセージが送信または受信されるとそのメッセー
ジに対応する全てのビットが1になるフラグビットから
構成される入力信号メッセージ用および出力信号メッセ
ージ用同期フラグとを備え、 各I/O装置は、前記入力信号メッセージ用同期フラグ
が全て0になると前記機械装置から信号の入力を開始
し、 各CPU装置は前記入力信号メッセージ用同期フラグが
全て1になると論理演算を開始し、 各I/O装置は、前記出力信号メッセージ用同期フラグ
が全て1になると前記機械装置へ信号の出力を開始する
ようにしたシーケンスコントローラシステムにおけるソ
フトウェア処理方法。 - 【請求項2】 同一ソフトウェアモジュールを複数のC
PUに内蔵させ、各ソフトウェアモジュールに対応する
出力信号メッセージ用同期フラグが0である時のみ出力
信号メッセージを送信するようにした請求項1記載のシ
ーケンスコントローラシステムにおけるソフトウェア処
理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30495092A JP3314885B2 (ja) | 1992-10-15 | 1992-10-15 | シーケンスコントローラシステムにおけるソフトウェア処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP30495092A JP3314885B2 (ja) | 1992-10-15 | 1992-10-15 | シーケンスコントローラシステムにおけるソフトウェア処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06131017A true JPH06131017A (ja) | 1994-05-13 |
JP3314885B2 JP3314885B2 (ja) | 2002-08-19 |
Family
ID=17939268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP30495092A Expired - Fee Related JP3314885B2 (ja) | 1992-10-15 | 1992-10-15 | シーケンスコントローラシステムにおけるソフトウェア処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3314885B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003162305A (ja) * | 2001-11-27 | 2003-06-06 | Toshiba Corp | 制御システム |
WO2013187191A1 (ja) * | 2012-06-14 | 2013-12-19 | 三菱電機株式会社 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
WO2015162760A1 (ja) * | 2014-04-24 | 2015-10-29 | 三菱電機株式会社 | Plcユニット及びプログラマブルロジックコントローラ |
-
1992
- 1992-10-15 JP JP30495092A patent/JP3314885B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003162305A (ja) * | 2001-11-27 | 2003-06-06 | Toshiba Corp | 制御システム |
WO2013187191A1 (ja) * | 2012-06-14 | 2013-12-19 | 三菱電機株式会社 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
WO2015162760A1 (ja) * | 2014-04-24 | 2015-10-29 | 三菱電機株式会社 | Plcユニット及びプログラマブルロジックコントローラ |
KR20160081981A (ko) * | 2014-04-24 | 2016-07-08 | 미쓰비시덴키 가부시키가이샤 | Plc 유닛 및 프로그래머블 로직 컨트롤러 |
CN106233211A (zh) * | 2014-04-24 | 2016-12-14 | 三菱电机株式会社 | Plc单元以及可编程逻辑控制器 |
JPWO2015162760A1 (ja) * | 2014-04-24 | 2017-04-13 | 三菱電機株式会社 | Plcユニット及びプログラマブルロジックコントローラ |
US10073431B2 (en) | 2014-04-24 | 2018-09-11 | Mitsubishi Electric Corporation | PLC unit and programmable logic controller |
Also Published As
Publication number | Publication date |
---|---|
JP3314885B2 (ja) | 2002-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6094532A (en) | Multiprocessor distributed memory system and board and methods therefor | |
JP3636871B2 (ja) | 並列プロセッサシステム | |
US20020065972A1 (en) | Bus system for use with information processing apparatus | |
US5283781A (en) | Apparatus for receiving and modifying a serial data packet from a communications network to indicate its status | |
EP0901659A1 (en) | Parallel processor with redundancy of processor pairs | |
JPH02500784A (ja) | 保留バスにおいて割り込み要求メッセージを処理するノード | |
EP0507951B1 (en) | Exclusive control method for shared memory | |
JPH02503367A (ja) | 保留バスを用いて割り込みに応じる装置及び方法 | |
JPH0668053A (ja) | 並列計算機 | |
US20010052056A1 (en) | Novel multiprocessor distributed memory system and board and methods therefor | |
US5802321A (en) | Synchronous serial communication network for controlling single point I/O devices | |
JP3314885B2 (ja) | シーケンスコントローラシステムにおけるソフトウェア処理方法 | |
US6108755A (en) | Asynchronous access system to a shared storage | |
WO1989009967A1 (en) | Computing machine with hybrid communication architecture | |
US5933261A (en) | Information processing method and system | |
JPS6054549A (ja) | デ−タ伝送方法および装置 | |
JP2578773B2 (ja) | シリアルデ−タ転送装置 | |
JPH0750661A (ja) | データ伝送方法と装置および非同期制御システム | |
JP3466728B2 (ja) | 情報処理システム及びその方法 | |
WO1992005489A1 (en) | Method of nonsynchronous access to shared memory | |
JP2705955B2 (ja) | 並列情報処理装置 | |
JPH10260949A (ja) | マルチプロセッサ | |
JPS6061859A (ja) | マイクロコンピュ−タのデ−タ通信方式 | |
JP2000347712A (ja) | プログラマブルコントローラ | |
JPH05292555A (ja) | スイッチの制御方法およびスイッチシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080607 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090607 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |