JP2000347712A - プログラマブルコントローラ - Google Patents
プログラマブルコントローラInfo
- Publication number
- JP2000347712A JP2000347712A JP11335525A JP33552599A JP2000347712A JP 2000347712 A JP2000347712 A JP 2000347712A JP 11335525 A JP11335525 A JP 11335525A JP 33552599 A JP33552599 A JP 33552599A JP 2000347712 A JP2000347712 A JP 2000347712A
- Authority
- JP
- Japan
- Prior art keywords
- output
- module
- data
- cpu
- shared mask
- 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
- Control By Computers (AREA)
- Programmable Controllers (AREA)
Abstract
ールを共有しているプログラマブルコントローラにおい
て、各CPUモジュールはその出力モジュールの出力状
態を知る為には、新たに入力モジュールを必要とした。 【解決手段】 CPUモジュール2は、共有マスクデー
タを出力データ共にDOモジュール3へフレーム送信す
る。この時送信フレーム内にデータ転送モード制御ビッ
トを設け、共有及び競合制御を行わない場合には共有マ
スクデータを含まないフレーム構成とすることも出来
る。DOモジュール3は、各CPUモジュール2からの
共有マスクデータ及び出力データと、自己の現在の出力
状態との論理結果から新出力を求める。新出力を通知す
る参照出力を各CPUモジュール2へ送信し、CPUモ
ジュール2はこの参照出力と共有マスクデータからDO
モジュール3の出力状態を示す参照データを生成する。
Description
ントローラに関し、更に詳しくはプログラマブルコント
ローラにおけるデータ出力の共有及び競合制御に関す
る。
等のバス101に複数のCPUモジュール102やDO
(出力)モジュール103及びDI(入力)モジュール
104を接続したマルチCPU構成のプログラマブルコ
ントローラが知られている。
いて、複数のCPUモジュール102−1〜102−m
が一つのDOモジュール103の出力点を共有して出力
を行う場合、この出力点を共有している各CPUモジュ
ール102は、DOモジュール103の出力状態が現在
ON(=“1”)状態なのかOFF(=“0”)状態な
のかを知ることができない。例えば図16において、C
PU102−1がDOモジュール103−1の一つの出
力点の出力状態をOFFにしても他のCPUモジュール
102−2〜102−mはこのことを知ることが出来な
い。このことは、例えば共有するDOモジュール103
−1を緊急停止信号として使用する場合、何れかのCP
Uモジュール102−1がこのDOモジュール103−
1に緊急停止信号をセットし、これを他のCPUモジュ
ール102−2〜102−mが認識して、しかるべき処
理を行った後に緊急停止信号をリセットするようなアプ
リケーション等において、緊急停止信号をセットしたC
PUモジュール102−1が、その後この緊急停止信号
に対して他のCPUモジュール102−2〜102−m
が何等かの対処処理を行って緊急停止状態が回避された
かどうかを知ることが出来ず、問題となる。
タ用に図17のごとくDIモジュール106を別に追加
して、このDIモジュール106にDOモジュール10
3の出力を折り返し入力する構成としていた。そしてD
Oモジュール103−1に“0”を出力したCPUモジ
ュール102−1が他のCPUモジュール102−2〜
102−mによって出力が“1”にされたかどうか等、
各CPUモジュール102−1〜102−mは、現在の
DOモジュール103−1の出力状態を知るためには、
このDIモジュール106の出力を参照していた。
モジュール103の出力の折り返し入力の例である。図
17において、バス101上の局アドレスとして局番0
が設定されているDOモジュール103−1の各出力点
105からの出力は局番1が設定されているDIモジュ
ール106の入力点107へ折り返し入力されている。
DOモジュール103−1を共有している各CPUモジ
ュール102上のタスクは、DOモジュール103−1
へデータを出力する時は局番0のDOモジュールをアド
レス指定して出力し、またDOモジュール103−1の
出力状態を得たい時は局番1のDIモジュールをアドレ
ス指定してDIモジュール106からのデータを得る。
びバス上での出力データの様子を示す。プログラマブル
コントローラでのデータの転送は、シリアルリンクバス
1での転送速度と同一速度の一定間隔の周期で行われ
る。またCPUモジュール102内の演算実行部へは、
このデータ転送と同一周期で割込みが入力される。この
周期をタクト周期といい図18中縦の点線で示してあ
る。各モジュールはこのタクト周期に同期して処理を行
う。
1で行われる演算処理によって生じたDOモジュール1
03への出力データは、CPUモジュール102内のI
/O領域の対応するアドレス領域へ格納される。すると
このデータは出力バッファを介してバス101上にフレ
ームデータとして送信出力される。
ュール103はこの受信データに基づいて各出力点の出
力状態を変更する。またこのDOモジュール103の出
力は局番1のDIモジュール106に折り返し入力され
ているので、このDIモジュール106によってDOモ
ジュール103の出力状態はバス101上にフレームデ
ータとして送信出力され、これは各CPUモジュール1
02のI/O領域の局番1に対応するアドレス領域に格
納される。
為の機能ブロック図を示す。CPUモジュール102内
には、データの入出力制御を行うための構成要素として
演算実行部201、I/O領域202、出力バッファ2
03、入力バッファ204、シリアルリンク制御部20
5、出力データ転送テーブル206及び入力データ転送
テーブル207を備える。
1から送信されてきたフレームのうち自局に必要なデー
タを入力バッファ204に取込むと共に下流局のモジュ
ールに流す。入力バッファ204に取込まれたデータ
は、タスク起動時にそのタスクに対応する入力データ転
送テーブル207を参照してそのタスクが必要とするデ
ータをI/O領域202に転送する。
複数のアプリケーションプログラムの各タスクが直接ア
クセスすることが出来るメモリ領域で、プログラム処理
を行う演算実行部201は、このI/O領域202内か
ら自己が必要とするデータを読み出す。
データ出力する時は、I/O領域202の対応するアド
レス領域へ出力データを書込む。そしてタスク処理がす
ると、出力処理時に、出力データ転送テーブル206に
基づいてI/O領域202から出力バッファ203へそ
のタスクに割り当てられたデータのみが転送される。そ
してシリアルリンク制御部205は、これをフレームデ
ータとしてバス101に出力する。
ュール103−1の出力をDIモジュール106で折り
返す構成にした場合、この為用に別にDIモジュールを
追加しなければならない。
ているアプリケーションプログラムは、DOモジュール
103−1の出力状態を知るのに、そのDOモジュール
103−1の局アドレスとは別なアドレスを用いなけれ
ばならない。よってアプリケーションプログラミングに
処理の煩雑さを強いることになる。
/O領域202上に、DOモジュール103−1の出力
モニタ用のDIモジュール106の局アドレスを設定し
なければならない。プログラマブルコントローラでは、
I/O領域202のサイズ、即ち接続できるモジュール
の総数は限定されているので、DOモジュール103−
1の出力状態のモニタのためにDIモジュール106を
用いると、1つのDOモジュールの為に2つのアドレス
を用いてしまうこととなり、資源利用効率が悪い。
01からのデータの入力処理において、入力データ転送
テーブル207に従って入力バッファ204からI/O
領域202へ入力データのコピーを行い、また出力処理
では出力データ転送テーブル206に従ってI/O領域
202から出力バッファ203への出力データのコピー
を行っている。よって出力データ転送テーブル206中
の局番0のDOモジュール103−1に設定されている
出力データの転送元アドレスと入力データ転送テーブル
207中の局番1のDIモジュール106に設定されて
いる入力データ転送先アドレスを同じにすることによ
り、I/O領域202のDOモジュール103−1への
出力先と同じアドレス領域にDIモジュール106を経
由したDOモジュール103−1の出力状態を入力させ
ることができる。しかしDOモジュール103−1への
入力データと出力データに対してI/O領域202の同
じアドレス領域を割り当てた場合、図20に示す不具合
がある。
6のDOモジュールへの出力データの転送元アドレスと
入力データ転送テーブル中207のDIモジュールから
の入力データの転送先アドレスを同じにした場合の各モ
ジュール及びバス上での入出力の状態を示すタイミング
図である。
部201がI/O領域202にDOモジュール103へ
の出力データとしてOUT2を出力したとする。しかし
次のタクト周期Bでは、このOUT2の出力による折り
返し出力がI/O領域202に転送される前に、1つ前
の出力状態であるOUT1が入ってくる。もしOUT2
がCPUモジュールが緊急停止信号として出力した
“1”で、またOUT1が“0”であったとき、次のタ
クト周期BでDOモジュールの出力状態を得ようとして
I/O領域202を参照すると、OUT1(“0”)と
なってるので、アプリケーションプログラムは、DOモ
ジュールの出力が他のCPUによって“0”にリセット
されたものと誤認識する。
ブルコントローラにおいては、各CPUで担当するリソ
ースを完全に分け機能分散した構成の場合では、入出力
の共有・競合は起こらないが、本来1つのCPUでシス
テム制御するところを、プログラム容量の増大への対
処、並列処理による処理性能の向上などの理由でマルチ
CPUを採用する場合1つの入出力モジュールを複数の
CPUで共有することとなる。そしてこの場合、1台の
入出力モジュールに対して、複数のCPUが書込み処理
を行う競合書込みを行う場合がある。その場合のプログ
ラムの開発では、ユーザは、競合制御を意識してプログ
ラムソースを作成、変更するようなわずらわしさが有
る。また、競合書込みが行われると複数のCPUモジュ
ールのプログラムで、同じ出力モジュールの同一アドレ
スに対する書込みが行われることとなるが、このアドレ
ス重複が競合書込みによるものなのか、プログラム作業
の誤り等によるものかチェックが容易に出来ることが要
求される。
UモジュールがDOモジュールを共有している場合、そ
のDOモジュールの出力をモニタするDIモジュールを
設けることなしに、各CPUモジュールが共有したDO
モジュールの出力状態を知ることが可能なプログラマブ
ルコントローラ及びアプリケーションプログラム開発装
置を提供することを課題とする。
ブルコントローラは、複数のCPUモジュールと少なく
とも1つの出力モジュールを備えることを前提とする。
成手段及び出力データ送信手段を備える。共有マスク生
成手段は、出力モジュールに対して出力状態を変更する
かどうかを指示する共有マスクを生成する。
ルに対する出力データを上記共有マスクと共に送信す
る。また上記出力モジュールは、出力データ受信手段と
共有及び競合制御手段を備える。
ールからの上記出力データを上記共有マスクと共に受信
する。共有及び競合制御手段は、CPUモジュールから
の、例えば自己を共有する複数のCPUモジュールから
の上記出力データと共有マスクから出力状態を決定す
る。
を示す参照出力を上記自己を共有する複数のCPUモジ
ュールへ送信する参照出力送信手段を備え、上記CPU
モジュールは、上記共有マスク生成手段が生成した共有
マスクを記憶する共有マスク記憶手段と、該共有マスク
記憶手段に記憶されている共有マスクと出力モジュール
からの上記参照出力から該出力モジュールの出力状態を
示す参照データを生成する出力状態参照データ生成手段
とを更に備える構成としても良い。
データを送信する出力モジュールで該出力データに対し
他のCPUモジュールからの出力データとの共有及び競
合制御を行う必要が無い時、該出力データの送信時、上
記共有マスクを該出力データを送信しない構成としても
よい。この場合例えばCPUモジュールに、上記共有マ
スクを上記出力データと共に送信したか否かを通知する
データ転送モード制御ビットを生成するデータ転送モー
ド制御ビット生成手段を更に備え、上記出力データ送信
手段が、該データ転送モード制御ビットを上記出力デー
タと共に送信し、受信側の出力モジュールの上記共有及
び競合制御手段は、該データ転送モード制御ビットが上
記共有マスクが上記出力データと共に送信されていない
ことを示す時、該出力データのみから出力状態を決定す
る構成となる。
ローラのアプリケーションプログラム開発装置は、プロ
グラム参照手段及び競合書込み命令生成手段を備える。
プログラム参照手段は、マルチCPU構成のプログラマ
ブルコントローラを構成する全てのCPUモジュールの
プログラムを参照する。
果、上記プログラムに複数のCPUモジュールが同じ出
力モジュールの同じ出力点への出力を示す命令を含む場
合、該命令を競合書込み用の命令に変換する。またこの
アプリケーションプログラム開発装置は、上記競合書込
み用の命令に変換する部分をユーザに通知するワーニン
グ通知手段を備える。
出力モジュールに対して出力データと共に共有マスクを
送信し、出力モジュールではこの共有マスクの内容に基
づいて出力の共有及び競合制御を行う。
データ生成手段によって、出力モジュールの参照出力送
信手段が送信した参照出力と共有マスク記憶手段が記憶
する共有マスクから参照データを生成するので、この参
照データから出力モジュールの出力状態を知ることが出
来る。
照出力と共有マスク記憶手段が記憶する共有マスクから
生成されるので、CPUモジュールでは、出力モジュー
ルへの出力情報と上記参照データを同一アドレス領域に
格納することが出来る。
には、CPUモジュールが上記共有マスクを出力データ
と共に出力モジュールに送信しない構成とすれば、トラ
フィク量を少なくすることが出来る。
ラム開発装置によれば、ユーザが意識しなくても競合書
込みとなる書込み命令は、競合書込み命令に変換され
る。また競合書込み命令に変換される部分は、ユーザに
通知される。
ラマブルコントローラの概略を示す図である。本実施形
態でのプログラマブルコントローラは、CPUモジュー
ル2−1〜2−3の3つのCPUモジュールが1つのD
Oモジュール3を共有しているものとする。
1を介して各CPUモジュール2から送信されてきた出
力データを受信すると、共有及び競合制御回路10によ
り、その受信データに基づいて出力点からの出力状態を
変化させると共に、参照出力として各CPUモジュール
2に現在の出力状態を示すデータを送信する。
DOモジュール3との間でのデータ転送は、本発明の出
願人による特願平10−148648号に開示されてい
るトータルフレーム方式及びマルチキャスト方式によっ
て行われるものとする。
通信の説明図である。本実施形態では、シリアルリンク
バス1の局の内の1つをリングマスター局とし、このリ
ングマスター局によってトータルフレーム方式及び後述
するマルチキャスト方式によるデータ転送を管理する。
図2ではシリアルリンクバス1に、リングマスター局、
A局、B局、C局、D局の順に接続されていたとする。
上に唯一存在するリングマスター局により、まずトータ
ルフレーム送信の要求を表すREQフレームが送信され
る。図2ではこの時のREQフレームはreq0と表さ
れている。
リタ部(スタートデミリタ(SD)部)にこのフレーム
がREQフレームであることを示すデータが設定されて
おり、このフレームの受信局はSD部を調べることによ
りこのフレームがREQフレームであることを認識す
る。
ーム最後に自局のデータを付加して隣の下流局へ送信す
る。図2の場合、A局はREQフレームを受信すると、
その末尾に自己の出力データDaを付加して下流局のB
局へ送信する。B局ではこのフレームを受信すると、そ
の末尾に自己の出力データDbを付加して出力する。以
下、順に各局はフレームを受取ると自己のデータをフレ
ームの末尾に付加して下流局へ送信する。尚、本実施形
態は複数のCPUモジュール2を使用するマルチCPU
の構成であり、CPUモジュール2が他のCPUモジュ
ール2がDOモジュールに出力したデータを参照できる
ようにするため、DOモジュールも自己のデータの出力
を行っている。しかし、CPUモジュールを1つしか持
たないプログラマブルコントローラの構成の場合には、
この様な必要はない。
1巡して、これをリングマスター局が受信すると、リン
グマスター局はこのフレームのスタートデミリタ(S
D)部に設定されているデータを2巡目のREQフレー
ムであることを示すデータを設定変更し、またフレーム
の最後に自己のデータを付加して隣の下流局であるA局
へ送信する。
ームのSD部を調べ、これが2巡目のREQフレームで
あることを認識すると、フレームのSD部の次にある1
巡目の時に自己が付加した自局データを削除して下流局
へ中継する。図2の場合、A局は2巡目のREQフレー
ムを受信すると、1巡目で自己が付加した自局のデータ
Daを削除して下流局のB局へ送信し、B局は受信フレ
ームのSD部の次にある自己の出力データDbを削除し
て次の下流局であるC局へ送信する。以下、順に各局は
フレームを受取ると1巡目で付加した自己のデータをフ
レームから削除して下流局へ送信する。
リンクバス1を巡回して、リングマスター局に戻ってく
ると、リングマスター局は、このフレームをシリアルリ
ンクバス1から除去する。これによってトータルフレー
ム通信は完了する。
について説明する。マルチキャスト方式は、CPUモジ
ュール2からDOモジュール3に対してデータの出力を
行う時用いられるデータ転送方式である。
ス1上にマルチキャスト通信用のフリートークンを巡回
させ、データ伝送を要求する局(DOモジュールに出力
するための送信データが用意されており、また当該送信
帯域の送信許可設定がされている局)はそのフリートー
クンを確保して代わりにマルチキャストフレームの送信
を行う。マルチキャストフレームはシリアルリンクバス
1上を巡回し、このマルチキャストフレームを受信した
ネットワーク上の局は、それを下流へ中継して巡回させ
ると共にフレーム内の出力データの設定内容に基づいて
データの取込みを行う。
説明図である。マルチキャスト方式による通信では、ま
ず、シリアルリンクバス1上に1つだけ存在するネット
ワーク管理を行うリングマスター局が、データ転送の権
限を制御するフリートークンを生成し、シリアルリンク
バス1上にリリースする。このフリートークンのリリー
スによって、マルチキャスト通信は開始される。
順次下流局へ中継してゆき、シリアルリンクバス1上を
巡回する。そしてデータの出力を行いたいCPUモジュ
ール2は、このフリートークンを受信すると、これをシ
リアルリンクバス1から確保し、マスター局となる。
を、SD部にこのフレームがマルチキャスト通信のフレ
ームであることを示すデータを設定したマルチキャスト
フレームとしてシリアルリンクバス1上に流す。図3で
は、マスター局は、保持したフリートークンの代わりに
A局に対する出力データ(M→Da)とB局に対する出
力データ(M→Db)の2つの局に対する出力データが
マルチキャストフレームとして、下流局Bへ送信され
る。
は、そのフレーム内の出力データに設定されている出力
データの格納先の局番を参照し、この出力データが自局
に対するものであれば、それを取込むと共にそのフレー
ムをそのまま下流局へ送信する。図3では、マルチキャ
ストフレームを受信したA局及びB局はそれぞれ自局に
あててマスタ局が出力した出力データ(M→Da、M→
Db)を取込むと共に、その受信フレームをそのまま隣
の下流局であるリングマスター局及びマスター局へ送信
する。
初に送信したマスタ局は、これをシリアルリンクバス1
から除去し、代わりにフリートークンを生成してシリア
ルリンクバス1上にリリースする。
ス1を1巡して戻ってくると、リングマスター局はデー
タ伝送要求の有無をチェックし、要求があれば当該送信
データ[A局に対する出力データ(RM→Da),B局
に対する出力データ(RM→Db)]の送信を行う。そ
の後、自局が送信したデータフレームがシリアルリンク
を1巡して自局に戻ってきたことでリングマスター局は
フリートークンをシリアルリンク上から除去し、これに
よってマルチキャスト通信は終了する。
ル2へデータを送信するときのデータ転送は、トータル
フレーム方式により行う。またCPUモジュール2から
DOモジュール3へデータを出力するときのデータ転送
は、マルチキャスト方式により行う。尚本発明では、各
モジュール間でのデータ転送はこのトータルフレーム方
式とマルチキャスト方式のみに限定されるものではな
い。また上記トータルフレーム方式及びマルチキャスト
方式によるデータ転送は、各モジュールがリング型の伝
送トポロジーのバスで接続されていることを前提とする
が、本発明が適用されるプログラマブルコントローラに
おいて各モジュールを接続するバスはリング型のトポロ
ジーをもつシリアルバスに限定されるものではなく、モ
ジュール間を他のトポロジーやパラレルバスで接続する
構成でも良い。
御回路10を詳細に示す。同図中最下段はシリアルリン
クバス1上を伝送されるフレームを示し、1タクト周期
中にDOモジュール3から各CPUモジュール2−1〜
2−3に対するトータルフレーム方式によるフレームに
続いてCPUモジュール2−1、2−2及び2−3から
のマルチキャスト方式によるフレームが続く。尚同図中
「メッセージ」はCPUモジュール2間やCPUモジュ
ール2と通信モジュールなどとの間で行われるメッセー
ジ転送用の時間帯域を示している。
Oモジュール3に対する出力データと共に共有マスクを
送信フレーム内に格納して、マルチキャスト方式でDO
モジュール3に送信する。この共有マスクは各CPUモ
ジュール2がDOモジュール3に対して出力状態の変更
を行うかどうかを出力点毎に指定するもので、各CPU
モジュール2はDOモジュール3の複数の出力点のう
ち、出力状態を変更したい出力点に対応する共有マスク
のビットに“1”を、変更を行わない出力点に対応する
ビットに“0”を設定し、出力データと共にDOモジュ
ールに送信する。
式のフレームを自己を共有している各CPUモジュール
2−1〜2−3全てから受信すると、フレーム中の共有
マスクデータ11及び出力データ12と、参照出力ラッ
チ16内の自己の現在の出力状態との論理結果から新出
力を求める。
2からのフレームから共有マスク11と出力データ12
を取り出すと、これらを各CPUモジュール2毎にAN
D回路13によってAND値を取る。また各共有マスク
11−1〜11−3の反転値と参照出力ラッチ16の出
力のAND値をAND回路14によって求める。
出力とAND回路14の出力のOR値をOR回路15に
よって求め、これをその出力点の新出力とする。またO
R回路15の出力は参照出力ラッチ16に格納されて次
出力の決定に用いられると共に、トータルフレーム方式
でシリアルリンクバス上に出力されて、各CPUモジュ
ール2−1〜2−3に出力状態を通知する。これにより
例えば全てのCPUモジュール2からの共有マスクデー
タ11−1〜11−3が“0”だったビットに対応する
出力点は、前回の出力状態の保持となる。また複数のC
PUモジュール2からの共有マスクデータ11が“1”
であり、その出力データ12として“1”と“0”の両
方ある場合には“1”が優先され、対応する出力点から
は“1”が出力される。
為の構成要素を示す機能ブロック図である。CPUモジ
ュール2内には、データの入出力制御を行うための構成
要素として演算実行部21、I/O領域22、出力バッ
ファ23、入力バッファ24、シリアルリンク制御部2
5、出力データ転送テーブル26、入力データ転送テー
ブル27及び共有マスクデータ領域28を備える。
演算結果からDOモジュールへデータ出力する必要が生
じた時は、I/O領域22のそのDOモジュールに対応
するアドレス領域へ出力データを書込む。この出力デー
タは、タスク処理すると出力処理時に、出力データ転送
テーブル26に基づいて、I/O領域22から出力バッ
ファ23へそのタスクに割り当てられたデータのみ転送
され、シリアルリンク制御部25は、これをフレームデ
ータとしてシリアルリンクバス1に出力する。
複数のアプリケーションプログラムの各タスクが直接ア
クセスすることが出来るメモリ領域で、CPUモジュー
ルの内部メモリ上に構成される。演算実行部21は、自
己が必要とする他モジュールからのデータを、このI/
O領域22内の対応するアドレス領域から読み出し、ま
た他モジュールへ出力する時は、対応するアドレス領域
に出力データを書込む。各CPUモジュール2では、自
己が対応している入力モジュールや出力モジュールを、
出力データ転送テーブル26及び入力データ転送テーブ
ル27でこのI/O領域22中の各アドレス領域に1:
1で対応付けてある。よって、例えばI/O領域22が
0HからFFHまでのアドレスをもつ場合、このCPU
モジュール2は256の入出力モジュールとデータのや
り取りを行うことが出来る。また各アドレス領域の各ビ
ットの位置は、各入出力モジュールの入出力点に1:1
対応しており、例えば1ワードが8ビットの場合、1つ
のアドレス領域で8つの入出力点に対応したデータのや
り取りを行える。
の局番、データのサイズ及び共有マスクと共に、出力す
る局毎に蓄積するバッファである。タスク処理が終了す
ると、出力処理時に、そのタスク処理で生じた出力デー
タは出力データ転送テーブル26に基づいてI/O領域
22から出力バッファ23へ転送される。そして出力バ
ッファ23内のデータは、シリアルリンク制御部25に
より、演算実行部21による処理とは無関係にタクト周
期でシリアルリンクバス1上に出力される。この様な一
連の動作により、シリアルリンクバス1に接続された各
モジュールは、一定周期(タクト周期)中は共通のデー
タを用いて動作することが可能となる。
たデータのうち、自局で必要なものを取込むバッファで
ある。シリアルリンクバス1から受信したデータは、シ
リアルリンクバス1の転送周期と同一周期のタクト周期
で、シリアルリンク制御部25から入力バッファ24に
格納される。そして、タスク起動時にそのタスクに対応
する入力データ転送テーブル27が参照されてそのタス
クが必要とするデータが入力バッファ24からI/O領
域22に転送される。
ンクバス1から送信されてきたフレームを自己の受信バ
ッファに取込み、それが自局に対するものでなければそ
のまま下流局に送り、また自局に対するものあればそれ
を入力バッファ24に取込むと共に下流局のモジュール
に流す。これによってシリアルリンクバス1上をフレー
ムデータが一定方向に巡回する。またマルチキャスト用
のトークンを受信するとシリアルリンク制御部25は、
出力バッファ23内のデータをマルチキャストフレーム
として、シリアルリンクバス1上にDMA転送する。
なるモジュールのバス1上での局アドレスとI/O領域
22のアドレスとを対応付けるものである。出力データ
転送テーブル26は、タスク毎に存在し、そのタスク処
理によって演算実行部21が、DOモジュールに出力す
る出力データをI/O領域22から出力バッファ23へ
転送する際に参照される。1つのタスク処理が終了する
と演算実行部21は、出力処理時に、出力データ転送テ
ーブル26を参照し、I/O領域22から出力バッファ
23へそのタスクに割り当てられたデータのみ転送す
る。
先となるモジュールのバス上での局アドレスとI/O領
域22のアドレスとを対応付けるもので、入力バッファ
24からI/O領域22へのデータの転送を行う際に参
照されるものである。入力データ転送テーブル27は、
各タスク毎に複数存在し、そのタスクが使用するデータ
の入力バッファ24でのアドレス、I/O領域22のア
ドレス及びデータサイズが格納されている。タスクが起
動される際に、入力バッファ24からI/O領域22へ
のデータの転送を行うときには、そのタスクに対応した
入力データ転送テーブル27を使用してそのタスクが起
動される前に入力バッファ24からI/O領域22にそ
のタスクが使用するデータのみが転送される。
22と同じ構成をもつ記憶領域で、CPUモジュールの
内部メモリ上に構成される。演算実行部21はこの共有
マスクデータ領域28中に共有マスクを生成する。そし
てこの共有マスクは、I/O領域22中の同じアドレス
の出力データと共に出力バッファ23へ転送され、対応
するDOモジュール3へ送信される。
後も共有マスクデータ領域28内に保持される。そし
て、DOモジュール3からの自己の出力状態を通知する
参照出力を受信した時、そのDOモジュールに対応する
アドレス領域内の共有マスクに基づいて入力バッファ2
4からI/O領域22への転送を行う。またこのI/O
領域22への転送入力処理が完了すると、対応する共有
マスクは“0”にリセットされる。この点については後
述する。
スクの例を示す図である。演算実行部21はタスク処理
の結果からDOモジュールの出力状態を変更する必要が
生じた時、出力データと共に共有マスクデータ領域28
に共有マスクデータを生成する。この共有マスクデータ
は、各ビットがDOモジュールの出力点と1:1対応し
た複数ビットのマスクデータで、DOモジュールの各出
力点のうち出力状態を変更する出力点に対応するビット
に“1”、変更しない出力点に対応するビットに“0”
が設定してある。
この共有マスクのデータによって8つの出力点について
の共有及び競合制御を行う。図6ではタスク処理による
演算結果から、DOモジュールに出力する出力データは
ビット0が“1”から“0”に、またビット4が“0”
から“1”に変化しているため、共有マスクデータは出
力状態に変更があるビット0とビット4に“1”、他の
変更がないビットに“0”がセットされたものが生成さ
れ、共有マスクデータ領域28に格納される。
ール3からトータルフレームによる参照出力を受信する
と、これを入力バッファ24に格納した後、入力データ
参照テーブル27に基づいてI/O領域22の対応する
アドレス領域へ転送するが、この時全てのデータがI/
O領域22に転送されるわけではなく、I/O領域22
と同じアドレス領域の共有マスク領域28内の共有マス
クを参照して、ビット毎に転送を行うかどうかを決定し
て、排他的にデータ転送を行う。
ットの参照出力は、図6のビット0やビット4の様に自
己がDOモジュールに出力の変更を指示した出力点の出
力状態を示すものだが、今回の受信データはまだこの変
更は反映されていないものである。よってこれをそのま
ま現在のDOモジュールの出力状態として入力バッファ
24からI/O領域22へ転送すると図20で示したよ
うな問題を生じる。よって共有マスクに“1”がセット
されているビットの参照出力の転送は行わずに出力デー
タの値をそのままDOモジュールの出力状態を示す値と
して残し、“0”がセットされているビットの参照出力
のみ入力バッファ24からI/O領域22へ転送する。
データの転送処理完了後、共有マスク領域28内の対応
アドレス領域の共有マスクを“0”にリセットし、次の
出力データの生成に備える。
セットは、I/O領域22への参照データの書き換え時
に随時行っても良いし、またタスク処理による演算を行
う前にI/O領域22内のデータをコピーしておいたも
のと、演算後のI/O領域22内のデータとを全アドレ
ス領域に対して比較を行い、まとめて全ての共有マスク
を生成する構成としても良い。
ール3に、出力データを送信するためにシリアルリンク
バス1上に送出されるマルチキャストフレームの構成例
である。
するDOモジュール3宛てのマルチキャストフレームを
送出する。マルチキャスト方式は、1タクト周期で複数
のモジュールに対してデータを送信することが出来、1
フレーム中に複数のDOモジュールへのデータを含める
ことが出来る。
複数のDOモジュールに対する出力データが含まれてお
り、この出力データは出力相手局を示す局番、データの
サイズ及びマスク情報と共に各DOモジュール毎に格納
されている。
ームを受信すると、受信フレーム内の各出力データに対
し付されている局番と自己の局番情報を比較してゆき、
一致するものがあれば対応する出力データを入力バッフ
ァに取込む。
モジュールがDOモジュールを共有している場合の各モ
ジュール及びバス上での入出力状態の例を示すタイミン
グ図である。同図は、CPU0がDOモジュールの1つ
の出力点を“1”にセットし、これを認識したCPU1
がこれを“0”にリセットする例である。尚同図及び以
下の説明は説明簡略化の為、DOモジュールの1つの出
力点について、つまり1ビットのデータの入出力につい
て記載されている。
処理による演算結果から、CPU0が共有しているDO
モジュールの1つの出力点に対し、出力状態を“0”か
ら“1”へ変更する必要が生じたとする。演算実行部2
1は、I/O領域22のそのDOモジュール及び出力点
に対応するアドレス領域に出力データとして“1”をセ
ットし、また共有マスク領域28のI/O領域22のア
ドレスと同じアドレス領域に対応ビットを“1”にセッ
トした共有マスクを生成し、格納する。
ストフレーム32−1としてDOモジュールに送信され
る。DOモジュールではCPU0及びCPU0からの出
力データ及び共有マスクに基づいて、タクト周期Bで、
DOモジュールは出力状態を変更する。この場合CPU
0の共有マスクは“1”、CPU1の共有マスクは
“0”なので出力状態はCPU0からの出力データが反
映され、出力点の出力状態は“0”から“1”になる。
の出力状態を通知する参照出力がトータルフレーム31
−1によってCPU0及びCPU1に通知される。この
トータルフレーム31−1による参照出力は、マルチキ
ャストフレーム32−1によるCPU0からの出力デー
タが反映されていないものなので、これをDOモジュー
ルの出力状態としてCPU0のI/O領域22に転送す
ると、CPU0は自己がセットした出力“1”がCPU
1によって“0”にリセットされたと誤判断してしま
う。しかし、CPU0では共有マスク領域28に記憶さ
れている共有マスクが“1”となっているので、このト
ータルフレーム31−1による参照出力はI/O領域に
転送されず出力状態を示す参照データはタクト周期Aで
セットされた“1”のままとなる。これによりCPU0
でタクト周期Bの演算処理で演算実行部21がI/O領
域22からDOモジュールの出力状態を示す参照データ
を読み出しても、タクト周期Aでセットした出力が他の
CPUモジュールによってリセットされていると誤認識
することはない。
域22への入力処理が完了すると、共有マスク領域28
内の同じアドレス領域内の共有マスクは“0”にクリア
される。これにより、演算処理によって新たにDOモジ
ュールの出力状態を変更する必要が生じて、共有マスク
が生成されるまでの間はトータルフレームによるDOモ
ジュールからの参照出力は参照データとしてそのままI
/O領域22に入力される。図8では、CPU0は、ト
ータルフレーム31−2、31−3、31−4の参照出
力はそのままI/O領域22にDOモジュールの出力状
態を示す参照データとして入力される。
トータルフレーム31−1及び31−2による参照出力
は、そのままI/O領域22へ参照データとして入力さ
れる。CPU1はタクト周期Cで、DOモジュールの出
力状態が“0”から“1”変化があったのを知ると、出
力状態を“1”から“0”へリセットするようにDOモ
ジュールへ指示する出力データを生成してI/O領域へ
格納し、また対応ビットが“1”となる共有マスクを生
成して共有マスク領域へ格納する。これらは、マルチキ
ャストフレーム32−3としてDOモジュールに通知さ
れる。DOモジュールでは、マルチキャストフレーム3
2−3内の共有マスクがCPU0からのものは“0”、
CPU1からのものは“1”なので、CPU1からの出
力データ“0”を反映させて出力状態を“1”から
“0”に変更する。またこの変更された出力状態は参照
出力として、トータルフレーム31−4によってCPU
0及びCPU1に通知される。
コントローラでは、DOモジュールでは、出力データと
共に送信されるCPUモジュールからの共有マスクによ
って、各CPUモジュールからの出力の競合制御を行う
ことが出来る。
ルから参照出力を受信すると、共有マスク領域内の対応
する共有マスクを参照してI/O領域への転送を行うの
で、DOモジュールへの出力データと参照データを同一
アドレスに設定しても問題を生じない。次に本発明の第
2の実施形態について説明する。
は、他のCPUモジュールと共有しており競合制御の必
要のあるDOモジュールだけでなく、共有していないD
Oモジュールに対しても、CPUモジュールは常に共有
マスクデータを含む大きさのフレームをシリアルリンク
バス1上に流すので、シリアルリンクバス1上の伝送効
率は低下してしまう。
ーラはこの点を考慮したもので、送信先が競合制御を必
要とするか否かによって、送信フレームを変更する構成
を備えている。
チキャストフレームの構成例を示す図で、図7の第1の
実施形態のフレーム構成図に対応するものである。第2
の実施形態によるフレーム構成では、フレーム内にデー
タ転送モード制御ビットを設けてある。同図の場合フレ
ームの先頭部分である送信先を示す入出力モジュールの
局番部分の上位のリザーブビットをデータ転送モード制
御ビットに用いている。尚このデータ転送モード制御ビ
ットは、同図の位置に限らず、特定の位置であればフレ
ーム内の他の位置に設けたり、独立して設けることも可
能である。
マスクによるデータ転送制御を行うか否かを示すビット
で、データ転送時に共有及び競合制御を行う場合にはこ
のビットに“1”を、共有及び競合制御を行う必要が無
い場合にはこのビットに“0”を設定したフレームを送
信する。
で共有及び競合制御を行わない場合のフレーム構成を示
すもので、フレーム先頭部のデータ転送モード制御ビッ
トに“0”がセットされ、またこのフレーム内には共有
マスクデータは含まれておらず、局番、サイズ、出力デ
ータで構成される。また同図(2)は、共有及び競合制
御を行う場合のフレーム構成を示すもので、データ転送
モード制御ビットに“1”がセットされ、また図7の第
1の実施形態でのフレーム構成と同様、出力データと共
に共有マスクデータを持つ構成となっている。
信先が共有されているか否か、競合制御を必要としてい
るかどうかによってこれら2つのフレームを使い分け、
他のCPUと共有している出力モジュールに出力データ
を送信する場合は、図9(2)に示したような構成のフ
レームを用い、他のCPUと共有していない出力モジュ
ールに出力データを送信する際は、同図(1)に示した
ような構成のフレームを用いる。この様にフレームを使
い分けることにより、他のCPUとデータ出力の共有及
び競合制御を行う必要が無い場合は、余分な共有マスク
データをフレーム内に含まなくなるので、その分トラヒ
ック量は減り、シリアルリンクバス1上のデータ転送効
率は良くなる。
ュール側の出力データを決定する共有及び競合制御回路
40の詳細を示す図である。図10は、第1の実施形態
の図4の構成に対応するもので、同一の構成要素には同
じ番号が符されている。
4の構成を基本に共有マスク有効モード記憶レジスタ4
1、新規受信有り記憶レジスタ42、NOT回路43及
びOR回路44が各CPUモジュール毎に加えられ、ま
たAND回路は3入力のAND回路に変更されている。
このうち共有マスク有効モード記憶レジスタ41は、受
信したマルチキャストフレーム中のデータ転送モード制
御ビットの値がセットされるもので、この値により共有
及び競合制御回路40は、共有及び競合制御を行う共有
マスク有りモードと共有及び競合制御を行わない共有マ
スク無しモードを切替える。また新規受信有り記憶レジ
スタ42は、新規のマルチキャストフレームを受信した
ことを示すレジスタで、新規にマルチキャストフレーム
をCPUモジュールから受信するとそのCPUモジュー
ルに対応する新規受信有り記憶レジスタ42に“1”に
セットされる。そしてOR回路15の出力がDO出力点
から出力され、また参照出力ラッチ16にラッチされる
と“0”にリセットされる。
値は、NOT回路43により反転された後OR回路44
により共有マスクデータ11とのOR値が取られる。よ
ってOR回路44からは、共有マスク有効モード記憶レ
ジスタ41に“0”がセットされている時は“1”が、
“1”がセットされている時は共有マスクデータ11の
値が出力されて、AND回路45により出力データ12
及び新規受信有り記憶レジスタ42内の値とAND値が
取られる。例えば図9(1)の様な競合制御を行わない
場合のフレームを受信すると、対応する共有マスク有効
モード記憶レジスタ41には“0”がセットされる。ま
た新規に受信したマルチキャストフレームが無い間は、
各新規受信有り記憶レジスタ42−1〜42−3の値は
“0”にリセットされたままなので、各AND回路45
−1〜45−3の出力は“0”となり、DO出力点から
の出力は、参照出力ラッチ16にラッチされている値が
AND回路14及びOR回路15を介して出力され続け
る。
ータを持たないフレーム(図9(1)のフレーム)と持
つフレーム(図9(2)のフレーム)のどちらを用いる
かを決定する共有マスクモジュールモード決定の仕方に
ついて説明する。
す図で、同図(a)は、複数のCPUモジュールにより
出力点の共有及び競合がある場合すなわち共有マスク有
りモードを示し、同図(b)は共有及び競合が無い場合
すなわち共有マスクデータ無モードの例を示す。同図
(a)はCPU0〜2の3つのCPUモジュールが出力
モジュールDO0及びDO1にデータを送信する際、デ
ータ共有を行う場合に共有マスク有りのモードの決定を
例としたもので、16点の出力点を持つ1つのDOモジ
ュールに対する16ビットの共有マスクデータをCPU
の使用ビットとして示している。
合、ビット0がCPU1とCPU2、ビット10がCP
U0とCPU2、ビット13がCPU1とCPU2、及
びビット15がCPU0とCPU1で共有マスクに
“1”が設定され、これらに対応するDO0の出力点が
競合されていることが分る。よってCPUモジュールC
PU0、CPU1及びCPU2は出力モジュールDO0
にデータを送信し出力点の出力状態の変更を行う時は、
共有有りモードとして図9(2)に示した様な共有マス
クデータを含むフレームをマルチキャストフレームとし
て送信する。
O1の場合は、同一ワードにおいて、CPU0がビット
13,14,15を使用し、CPU1がビット10,1
1,12を使用し、CPU2がビット0,1,2を使用
しており、3台のCPUで共有されている。そして各C
PUモジュールは出力モジュールDO1にデータを送信
する時は、共有マスク有りモードとして、CPU使用ビ
ットに対応する共有マスクデータを出力データと共に送
出する。
のみがDO2の全ビットを使用しており、CPU1とC
PU2はDO2を一切使用していない。すなわちDO2
はCPU0のみの制御下の出力モジュールであり、CP
U0は共有無しモードとして図9(1)に示したような
共有マスクデータを含まないフレームをマルチキャスト
フレームとして出力モジュールDO2に送信する。
ュールによる共有マスクデータの制御例を示す図であ
る。同図は図11の出力条件で、CPU0がDO0の出
力制御を行う場合の共有マスクの制御動作を例として示
したものである。
ュールDO0に対して、図12に示すように固定共有マ
スクレジスタ51及び出力条件共有マスクレジスタ52
をOR回路53の入力に、その出力をシリアルリンク出
力共有マスクレジスタ54に接続して備えている。固定
共有マスクレジスタ51は、CPUモジュールで動作す
るOSによって操作されるもので、他のCPUモジュー
ルと競合せずにCPU0のみが用いる出力点に対応する
ビットに“1”がセットされる。この固定共有マスクレ
ジスタ51の値は、そのDOモジュールの出力点の共有
状態の変更が無ければ、固定的にセットされたままであ
る。出力条件共有マスクレジスタ52は、CPUモジュ
ールがDOモジュールに出力変更を行う出力点を設定す
るレジスタで、出力条件が整った出力点に対応するビッ
トに“1”が出力条件判定部55によってセットされ
る。シリアルリンク出力共有マスクレジスタ54は、マ
ルチキャストフレームに格納して送信する共有マスクデ
ータを格納するレジスタである。
有マスクデータ生成の制御動作処理を以下に示す。C
PU0は、DO0のビット1、2を他のCPUモジュー
ルと競合せずに使用するため、予めOS処理によってD
O0用の固定共有マスクレジスタのビット1及び2に
“1”をセットしておく。CPU0は、競合出力点に
対する出力条件判定を行い、出力条件が成立した場合出
力条件判定部55がDO0出力条件成立共有マスクレジ
スタ52の対応ビットに“1”をセットする。同図の場
合、ビット15に対応する出力点で出力条件が成立した
のでビット15に“1”をセットする。DO0用の固
定共有マスクレジスタ51と出力条件成立共有マスクレ
ジスタ52の値のOR値を取り、結果をDO0用のシリ
アルリンク出力共有マスクレジスタ54にセットする。
この場合ビット1,2,15に“1”がセットされた値
がシリアルリンク出力共有マスクレジスタ54にセット
される。そしてこのシリアルリンク出力共有マスクレジ
スタ54内のデータは、共有マスクデータとしてマルチ
キャストフレームにより出力データと共にDO0に送信
される。DO0では図10に示した共有及び競合制御回
路40により、共有及び競合制御として共有マスクデー
タからビット1、2、15に対応する出力点の出力をC
PU0からの出力データに基づいて変更する。尚ビット
10に対応する出力点もCPU0は出力制御を行ってい
るが、今回は出力条件が成立しなかったため、出力は前
回値のまま保持される。
プログラマブルコントローラにおいては、各CPUで担
当するリソースを完全に分け機能分散した構成の場合で
は、入出力の共有・競合は起こらないが、本来1つのC
PUでシステム制御するところを、プログラム容量の増
大への対処、並列処理による処理性能の向上などの理由
でマルチCPUを採用する場合入出力モジュールを複数
のCPUで共有することとなる。そしてこの場合、1台
の入出力モジュールに対して、複数のCPUが書込み処
理を行う競合WT(書込み)を行う場合がある。その場
合のプログラム開発においてユーザは、競合制御を意識
してプログラムソースを作成、変更するようなわずらわ
しさが有ってはならない。また、競合WTが行われると
複数のCPUのプログラムで、同じDOモジュールの同
一アドレスに対する書込みが行われることとなるが、こ
のアドレス重複が競合書込みによるものなのか、プログ
ラム作業の誤り等によるものかチェックが容易に出来る
ことが要求される。
PUで共有されている出力点への書込みに対し、競合制
御を行う競合WT命令を持ち、またユーザはこの競合W
T命令を意識して用いなくても、アプリケーションプロ
グラム開発装置(以下ローダという)が自動的に競合W
T命令を生成する機構を備える。
同図ではユーザ記述プログラム例として、基本的なWT
命令のラダー表示、それをコーディングした通常命令表
示であるS(セット)、R(リセット)、W(ライト)
及びそれぞれに対応する競合WT命令KS(競合セッ
ト)、KR(競合リセット)、KW(競合ライト)を示
している。
理例を示す。図14(a)に示すように、ローダは、ロ
ーダ処理として各CPUモジュールの実行オブジェクト
を生成するに際し、マルチCPUシステムを構成する全
てのCPUモジュール(同図ではCPU0、CPU1、
CPU2)のソースプログラムを参照し、異なるCPU
によって同じ入出力モジュールの同一出力点への出力、
即ち同じ出力アドレスへの書込みが行われいる部分を調
べる。そして、同じアドレスに対し複数のCPUが書込
みを行っている箇所を検出すると、そのCPUのソース
プログラム中のWT命令を図13に示したような競合W
T命令に変換された後、実行オブジェクトを生成する。
のプログラム中、出力モジュールDO0のビット15に
対しての書込みが競合しているため、ローダはCPU0
とCPU1のソースプログラム中のビット15に対する
WT命令を競合WT命令(KW)に置換えている。尚、
CPU0のDO0ビット2に対する書込みとCPU1の
DO0のビット10に対する書込みは他のCPUと競合
していないので、通常のWT命令(W)のままとなって
いる。
力点を複数のCPUモジュールが競合使用しているため
に発生する場合と、プログラミング作業の誤り等による
ユーザの認識外の要因によって発生した場合が考えられ
る。よって、後者の要因によるものを排除するために、
ローダは上記競合WT命令への置換を行う前にユーザに
対してアドレスの重複を警告する競合WTのワーニング
通知を行う。
グ通知例を示す図である。このワーニング通知の方法と
しては、同図(a)に示すように、ソースプログラムレ
ベルで表示し、競合が発生した出力命令部分を他の表示
部分と表示色を替えたり、あるいは点滅表示したりして
強調する方法がある。同図の場合、通常表示部分が白色
で表示されているのに対し、競合が発生した書込み命令
部分を赤色で表示してユーザに通知している。
図(b)に示すように競合制御箇所をプログラムの行番
号と命令種類をリスト形式で示す方法がある。ユーザ
は、これらのワーニング通知からプログラムの誤りを検
出することが出来る。以上の説明で、出力モジュールと
してデジタル出力モジュール(DOモジュール)を例と
して説明したが、アナログ出力モジュール(AOモジュ
ール)においても、共有及び競合制御の考え方は全く同
じであり、ただ共有マスクデータが出力データ、例えば
1ワードに対して1ビットで対応することで実現するこ
とが出来る。例えば4ワードAOモジュールにおいて、
1ワード目はCPU0が使用し、2ワード目はCPU1
が使用し、3、4ワード目はCPU2が使用する場合
は、共有が行われ共有マスク有りモードとなり、4ワー
ドデータに対して4ビットの共有マスクデータで制御さ
れることとなる。また出力モジュールにおける共有及び
競合制御回路は、単純なAND及びOR回路でなくセレ
クタ及び中間値データ生成及び平均値データ生成回路な
どで実現することも出来る。
ーラによれば、出力モジュールの出力状態をCPUモジ
ュールに知らせるために、新たに入力モジュールを設け
る必要が無い。
ールから出力データと共に送信されてくる共有マスクに
よって各CPUモジュールによる出力データの共有及び
競合制御を行うことが出来る。
ールが出力モジュールの出力状態を誤認識する等の問題
を生じることが無く、出力モジュールに対する出力デー
タと参照出力に対して同じアドレスを設定することが出
来る。よって、出力モジュールにデータを出力する時
も、出力状態を参照する時も同じアドレスを用いること
が出来るので、プログラミングに混乱を招かない。これ
はアプリケーションプログラミングに拠るデータの入出
力処理を簡易化することが出来、プログラムの簡略化や
処理速度の向上を実現できる。
データの場合には出力データと共に共有マスクを出力モ
ジュールに送信しない構成とした場合には、単一CPU
システムと同様の通信負荷となり、システム性能を向上
することが出来る。すなわち、単一CPUシステムにお
いても、本発明は上記共有マスク無しモードでそのまま
使用可能である。
ローラのプログラム開発に於て、ユーザは、競合制御を
行う場合でも、通常の入出力モジュールへの書込み命令
を記述すれば、ローダが複数のCPUのプログラムを参
照して自動的に競合制御専用の命令に変換する。またこ
の変換部分は、ユーザに通知されるので、ユーザは競合
を意識してアドレスを重複させてたのか、誤ってアドレ
スを重複させたのかを容易に確認でき、マルチプロセッ
サシステムにおけるプログラミング開発効率及びプログ
ラムの品質を向上することが出来る。
す図である。
る。
る。
である。
を示す機能ブロック図である。
示す図である。
る。
有している場合の各モジュール及びバス上での入出力の
状態例を示すタイミング図である。
構成例を示す図である。
示す図である。
ード決定論理を示す図である。
共有マスクデータの制御例を示す図である。
である。
図である。
る。
ール及びDOモジュールを接続したマルチCPU構成の
プログラマブルコントローラを示す図である。
の折り返し入力の例を示す図である。
子を示すタイミング図である。
機能ブロック図である。
レスとDIモジュールからの入力データの転送先アドレ
スを同じにした場合の各モジュール及びバス上での入出
力の状態を示すタイミング図である。
Claims (19)
- 【請求項1】 複数のCPUモジュールと少なくとも1
つの出力モジュールを備えるプログラマブルコントロー
ラにおいて、 前記各CPUモジュールは、 出力モジュールに対して出力状態を変更するかどうかを
指示する共有マスクを生成する共有マスク生成手段と、 前記出力モジュールに対する出力データを前記共有マス
クと共に送信する出力データ送信手段と、 を備え、 前記出力モジュールは、 前記CPUモジュールからの前記出力データを前記共有
マスクと共に受信する出力データ受信手段と、 前記出力データと共有マスクから出力状態を決定する共
有及び競合制御手段と、 を備えることを特徴とするプログラマブルコントロー
ラ。 - 【請求項2】 前記共有及び競合制御手段は、自己を共
有する複数のCPUモジュールからの前記出力データ及
び共有マスクと、自己の現在の出力状態に基づいて前記
出力状態を決定することを特徴とする請求項1記載のプ
ログラマブルコントローラ。 - 【請求項3】 前記出力モジュールは、前記出力状態を
示す参照出力を前記自己を共有する複数のCPUモジュ
ールへ送信する参照出力送信手段を更に備え、前記CP
Uモジュールは、前記共有マスク生成手段が生成した共
有マスクを記憶する共有マスク記憶手段と、該共有マス
ク記憶手段に記憶されている共有マスクと出力モジュー
ルからの前記参照出力から該出力モジュールの出力状態
を示す参照データを生成する出力状態参照データ生成手
段とを更に備えることを特徴とする請求項1又は2記載
のプログラマブルコントローラ。 - 【請求項4】 前記出力状態参照データ生成手段が生成
した前記出力モジュールの出力状態を示す参照データ
を、該出力モジュールに対する前記出力データを格納す
るアドレス領域と同じ領域に格納する参照データ格納手
段を更に備えることを特徴とする請求項3記載のプログ
ラマブルコントローラ。 - 【請求項5】 前記CPUモジュール及び出力モジュー
ルはリング上の構成をもつバスによって接続され、前記
CPUモジュール及び出力モジュールは、前記バス上に
フレームを巡回させて他のモジュールとのデータの転送
を行うことを特徴とする請求項1乃至4のいずれか1つ
に記載のプログラマブルコントローラ。 - 【請求項6】 前記CPUモジュールは前記出力モジュ
ールに対してデータを送る場合マルチキャスト方式によ
り、前記出力モジュールは前記CPUモジュールに対し
てデータを送る場合トータルフレーム方式によりデータ
の転送を行うことを特徴とする請求項5記載のプログラ
マブルコントローラ。 - 【請求項7】 前記出力データ送信手段は、前記出力デ
ータを送信する出力モジュールで該出力データに対し他
のCPUモジュールからの出力データとの共有及び競合
制御を行う必要が無い時、該出力データの送信時、前記
共有マスクを送信しないことを特徴とする請求項1乃至
6の何れか1つに記載のプログラマブルコントローラ。 - 【請求項8】 前記CPUモジュールは、前記共有マス
クを前記出力データと共に送信したか否かを通知するデ
ータ転送モード制御ビットを生成するデータ転送モード
制御ビット生成手段を更に備え、前記出力データ送信手
段は、該データ転送モード制御ビットを前記出力データ
と共に送信し、前記共有及び競合制御手段は、該データ
転送モード制御ビットが前記共有マスクが前記出力デー
タと共に送信されていないことを示す時、該出力データ
のみから出力状態を決定することを特徴とする請求項7
記載のプログラマブルコントローラ。 - 【請求項9】 前記出力データ送信手段は、他のCPU
モジュールと共有及び競合する出力点を持つ出力モジュ
ールに対する出力指示を前記出力データとして送信する
時、前記共有マスクを該出力データと共に送信すること
を特徴とする請求項7に記載のプログラマブルコントロ
ーラ。 - 【請求項10】 前記共有マスク生成手段は、出力モジ
ュールの他のCPUモジュールと競合しない出力点に対
応するビットを常時にセットし、競合する出力点に対応
するビットは出力条件成立時にセットし、前記出力デー
タ送信手段が出力データを送信するとリセットして前記
共有マスクを生成することを特徴とする請求項1乃至9
の何れか1つに記載のプログラマブルコントローラ。 - 【請求項11】 前記CPUモジュールは、他のCPU
と競合する出力点へのデータの書込みがある場合、出力
データの書込みと共に対応する共有マスクの書き換えを
行う競合書込み用の書込み命令を備えることを特徴とす
る請求項1乃至10の何れか1つに記載のプログラマブ
ルコントローラ。 - 【請求項12】 CPUモジュールからの出力データを
自己の出力状態を変更するかどうかを指示する共有マス
クと共に受信する出力データ受信手段と、 前記出力データと共有マスクから出力状態を決定する共
有及び競合制御手段と、 を備えることを特徴とするプログラマブルコントローラ
の出力モジュール。 - 【請求項13】 前記共有及び競合制御手段は、前記出
力データと共に前記共有マスクが送信されてこない時、
該出力データから出力状態を決定することを特徴とする
請求項12に記載のプログラマブルコントローラの出力
モジュール。 - 【請求項14】 出力モジュールに対して出力状態を変
更するかどうかを指示する共有マスクを生成する共有マ
スク生成手段と、 前記共有マスクを前記出力データと共に前記出力モジュ
ールに送信する出力データ送信手段と、 を備えることを特徴とするプログラマブルコントローラ
のCPUモジュール。 - 【請求項15】 前記出力データ送信手段は、前記出力
データを送信する出力モジュールで該出力データに対し
他のCPUモジュールからの出力データとの共有及び競
合制御を必要としない時、該出力データの送信時、前記
共有マスクを送信しないことを特徴とする請求項14に
記載のプログラマブルコントローラのCPUモジュー
ル。 - 【請求項16】 マルチCPU構成のプログラマブルコ
ントローラを構成する全てのCPUモジュールのプログ
ラムを参照するプログラム参照手段と、 前記参照結果、前記プログラムに複数のCPUモジュー
ルが同じ出力モジュールの同じ出力点への出力を示す命
令を含む場合、該命令を競合書込み用の命令に変換する
競合書込み命令生成手段と、 を備えることを特徴とするプログラマブルコントローラ
のアプリケーションプログラム開発装置。 - 【請求項17】 前記競合書込み用の命令に変換する部
分をユーザに通知するワーニング通知手段を更に備える
ことを特徴とする請求項16に記載のプログラマブルコ
ントローラのアプリケーションプログラム開発装置。 - 【請求項18】 複数のCPUモジュールと少なくとも
1つの出力モジュールを備えるプログラマブルコントロ
ーラにおけるデータ出力の共有及び競合制御方法であっ
て、 前記各CPUモジュールが、 出力モジュールに対して出力状態を変更するかどうかを
指示する共有マスクを生成し、 前記出力モジュールに対する出力データを前記共有マス
クと共に送信し、 前記出力モジュールが、 前記CPUモジュールからの前記出力データを前記共有
マスクと共に受信し、 前記出力データと共有マスクから出力状態を決定する、 ことを特徴とするプログラマブルコントローラに於ける
データ出力の共有及び競合制御方法。 - 【請求項19】 前記CPUモジュールは、前記出力デ
ータに対し送信先の出力モジュールで他のCPUモジュ
ールからの出力データとの共有及び競合制御を必要とす
るかどうかを判断し、該判断結果、必要としない場合、
前記共有マスクを前記出力モジュールに送信しないこと
を特徴とする請求項18に記載のデータ出力の共有及び
競合制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP33552599A JP4123660B2 (ja) | 1999-03-30 | 1999-11-26 | プログラマブルコントローラ |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP11-90279 | 1999-03-30 | ||
| JP9027999 | 1999-03-30 | ||
| JP33552599A JP4123660B2 (ja) | 1999-03-30 | 1999-11-26 | プログラマブルコントローラ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2000347712A true JP2000347712A (ja) | 2000-12-15 |
| JP4123660B2 JP4123660B2 (ja) | 2008-07-23 |
Family
ID=26431777
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP33552599A Expired - Lifetime JP4123660B2 (ja) | 1999-03-30 | 1999-11-26 | プログラマブルコントローラ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4123660B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007058472A (ja) * | 2005-08-24 | 2007-03-08 | Yokogawa Electric Corp | ラダープログラム開発支援装置 |
| JP5186043B2 (ja) * | 2009-07-17 | 2013-04-17 | 富士通テレコムネットワークス株式会社 | Snmpエージェント装置およびsnmpエージェント制御方法 |
| KR20180123627A (ko) * | 2017-05-09 | 2018-11-19 | 지멘스 악티엔게젤샤프트 | 자동화 시스템 및 작동 방법 |
-
1999
- 1999-11-26 JP JP33552599A patent/JP4123660B2/ja not_active Expired - Lifetime
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007058472A (ja) * | 2005-08-24 | 2007-03-08 | Yokogawa Electric Corp | ラダープログラム開発支援装置 |
| JP5186043B2 (ja) * | 2009-07-17 | 2013-04-17 | 富士通テレコムネットワークス株式会社 | Snmpエージェント装置およびsnmpエージェント制御方法 |
| KR20180123627A (ko) * | 2017-05-09 | 2018-11-19 | 지멘스 악티엔게젤샤프트 | 자동화 시스템 및 작동 방법 |
| CN108873769A (zh) * | 2017-05-09 | 2018-11-23 | 西门子股份公司 | 自动化系统和运行方法 |
| US10554441B2 (en) | 2017-05-09 | 2020-02-04 | Siemens Aktiengesellschaft | Automation system and method for operation of the system |
| KR102080078B1 (ko) | 2017-05-09 | 2020-02-24 | 지멘스 악티엔게젤샤프트 | 자동화 시스템 및 작동 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP4123660B2 (ja) | 2008-07-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7599998B2 (en) | Message handling communication between a source processor core and destination processor cores | |
| US6094532A (en) | Multiprocessor distributed memory system and board and methods therefor | |
| JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
| JPH0624372B2 (ja) | ローカル・エリア・ネツトワークにおいて第1のノードから第2のノードを診断する方法 | |
| JPS60160463A (ja) | プロセツサシステム | |
| JP4154853B2 (ja) | 制御データを等値化する冗長化プログラマブルコントローラ及び等値化方法。 | |
| JPH06295336A (ja) | ビデオ表示装置 | |
| WO1999022307A1 (en) | Data interface and high-speed communication system using the same | |
| JPH114279A (ja) | 先進的システム間送信方法および機構 | |
| US20050015529A1 (en) | Duplexing system and method using serial-parallel bus matching | |
| EP0504414B1 (en) | Message control system in a data communication system | |
| JP4123660B2 (ja) | プログラマブルコントローラ | |
| US5592624A (en) | Data communication for controlling message transmission and reception among processing modules using information stored in descriptor to form a loosely coupled multiprocessing system | |
| JPH06139207A (ja) | システムバス制御方式 | |
| JP3169856B2 (ja) | マルチノード情報処理システム | |
| JP3466728B2 (ja) | 情報処理システム及びその方法 | |
| US20250265108A1 (en) | Communication device and communication method | |
| JP2010245953A (ja) | 情報処理装置、情報処理方法 | |
| JPH05342172A (ja) | マルチプロセッサシステム | |
| JPH0562384B2 (ja) | ||
| JP2705955B2 (ja) | 並列情報処理装置 | |
| JPH09190418A (ja) | ネットワーク制御方法 | |
| JPH07143148A (ja) | 高速サイクリック伝送装置 | |
| JP2856709B2 (ja) | バス間結合システム | |
| JPH07319823A (ja) | プロセッサ間通信方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040218 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040713 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070104 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070410 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070611 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080122 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080321 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080415 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080428 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 4123660 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140516 Year of fee payment: 6 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| EXPY | Cancellation because of completion of term |