(57)【要約】【課題】メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を抑制する。【解決手段】制御周期（Ｃ２）において最小ペイロードデータ（Ｄ６）の送信時間（Ｔ２）が基準値を超えると判定された時刻（ｔ５）から、時刻（ｔ５）において送信済みの直近の最小ペイロードデータ（Ｄ７）の次に送信される最小ペイロードデータ（Ｄ８）を通信インタフェース（４２）が送信する時刻（ｔ６）までの期間（Ｔ３）において、通信インタフェース（４２）に最小ペイロードデータ（Ｄ８）の送信を待機させるユニット（２０）。【選択図】図２
2020187659.tif 000002
【特許請求の範囲】
【請求項１】
シリアルバスに接続される第１メモリと、前記シリアルバスに接続されると共に、前記シリアルバスを介して前記第１メモリと通信する第１通信部とを備えている制御装置に接続される情報処理装置であって、
前記シリアルバスを介して前記第１メモリに送信される通信データから、複数の最小ペイロードデータを生成する生成部と、
前記シリアルバスを介して、前記最小ペイロードデータを一定時間ごとに順番に前記第１メモリに送信する送信部と、
前記送信部が第１時点において送信した前記最小ペイロードデータの送信時間を算出する算出部と、
算出された前記送信時間が所定の基準値を超えるか否かを判定する判定部と、
前記送信時間が前記基準値を超えると判定されたと判定された第２時点から、前記第２時点で送信済みの直近の前記最小ペイロードデータの次に送信される前記最小ペイロードデータを前記送信部が送信する第３時点までの一定期間、前記送信部に前記最小ペイロードデータの送信を待機させる送信制御部とを備えている、情報処理装置。
【請求項２】
前記第１時点で送信された前記最小ペイロードデータが前記第１メモリに書き込まれたことを示す完了報告を受信する受信部を備えており、
前記算出部は、前記第１時点と、前記完了報告を受信した時点とに基づいて、前記送信時間を算出する、請求項１に記載の情報処理装置。
【請求項３】
前記受信部は、続けて送信される複数の前記最小ペイロードデータが前記第１メモリに書き込まれたことを示す前記完了報告を受信し、
前記算出部は、前記第１時点と、前記完了報告を受信した時点とに基づいて、１つ当たりの前記最小ペイロードデータの前記送信時間を算出し、
前記判定部は、１つ当たりの前記最小ペイロードデータの前記送信時間が前記基準値を超えるか否かを判定する、請求項２に記載の情報処理装置。
【請求項４】
前記制御装置は、前記第１通信部が第１データを前記第１メモリとの間で転送する際の送信時間をシミュレーションにより算出すると共に、算出された前記送信時間を表す情報を前記制御装置に提供する外部装置に接続されており、
前記外部装置から前記制御装置に提供された前記情報を、前記制御装置から取得する取得部と、
前記情報に基づいて、前記一定期間を設定する設定部とを備えている、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１通信部は、前記制御装置の動作中に、前記第１データを前記第１メモリに送信する際の送信時間を測定し、測定された前記送信時間に基づいて、前記送信時間を表す情報を補正し、
前記取得部は、補正された前記情報を前記制御装置から取得する、請求項４に記載の情報処理装置。
【請求項６】
前記送信制御部は、前記送信時間が前記基準値を超えると判定されることが、一定回数続けて発生した場合、前記送信部を待機させることなく次の前記最小ペイロードデータを前記送信部に送信させる、請求項１〜５のいずれか１項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御対象の制御を実行する制御装置と協働して動作する情報処理装置に関する。
【背景技術】
【０００２】
従来、産業用コントローラの処理負荷を低減させるために、コントローラと協働して動作する各種のユニットを併用する形態の産業用制御システムが知られている。このようなシステムでは、コントローラおよびユニットが同一のメモリを共有しており、コントローラまたはユニットがそれぞれ共有メモリにアクセスしてデータを読み書きする、という形で運用されることも良くある。しかし、共有メモリに対してコントローラおよびユニットが無秩序にアクセスできるようにすると、それぞれのアクセスが同一のタイミングで発生することによる「メモリ競合」が起こり、その結果として、優先して処理すべきデータの読み書きが遅延してしまうといった問題が生じ得る。
【０００３】
そこで従来、このようなメモリ競合の発生を避けるための技術の例が、例えば特許文献１および２に提案されている。
【０００４】
特許文献１には、共有メモリの使用許可を求めるリクエスト信号をランダムなタイミングで出力する第１制御手段と、前記共有メモリの使用許可を求めるリクエスト信号を一定サイクル毎に出力する第２制御手段と、前記第１制御手段、及び第２制御手段からそれぞれ出力される前記リクエスト信号を調停する調停手段とを備えたメモリアクセス調停装置において、前記第２制御手段からのリクエスト信号の出力を受けて、前記調停手段に対し、該調停手段が前記第１制御手段に対してａｃｋ信号を出力するのを禁止するａｃｋ禁止信号を出力する判定手段を備える、ことを特徴とするメモリアクセス調停装置が開示される。
【０００５】
特許文献２には、共用資源に対する複数のデバイスからの使用要求を予め定めた優先順位により調停して選択的に前記共用資源の使用許可をする調停システムにおいて、調停の対象となる前記複数のデバイスの中で一定時間内にデータを転送する必要のある特定デバイスの使用要求許可開始から次の使用要求許可開始までの時間を計時して、前記特定のデバイスの使用要求許可の選択が所定時間されていないことを検知するとタイムアウト信号を発生する計時手段と、前記計時手段からの前記タイムアウト信号に応じて前記特定のデバイスの優先順位を最も高く、または少なくとも２番目に高く変更することで前記特定デバイスの使用要求を一定時間毎に許可する調停手段とを具備したことを特徴とする調停システムが開示される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１１５４２１号
【特許文献１】特開平９−９１１９４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術では、第１制御手段および第２制御手段がいずれも調停手段にアクセスして、メモリへのアクセスを調停して貰う必要がある。そのため、例えば第１制御手段を産業用コントローラのＣＰＵとした場合、調停のためのＣＰＵの処理負荷（リクエスト送信、ＡＣＫ受信など）が増えるため、ＣＰＵの制御周期が長くなってしまう。その結果、ＣＰＵが一定の周期で処理を実行できなくなる問題が発生する。
【０００８】
特許文献２の技術でも、複数のデバイスと、１つのＣＰＵとが、メモリ競合を避けるために調停回路にアクセスする必要がある。これにより、調停のためのＣＰＵの処理負荷（リクエスト送信、ＡＣＫ受信など）が増えるため、ＣＰＵの制御周期が長くなってしまう。その結果、ＣＰＵが一定の周期で処理を実行できなくなる問題が発生する。
【０００９】
本発明は、前記の課題を解決するためになされたものであり、その目的は、メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を抑制することにある。
【課題を解決するための手段】
【００１０】
本発明の一態様に係る情報処理装置は、シリアルバスに接続される第１メモリと、前記シリアルバスに接続されると共に、前記シリアルバスを介して前記第１メモリと通信する第１通信部とを備えている制御装置に接続される情報処理装置であって、前記シリアルバスを介して前記第１メモリに送信される通信データから、複数の最小ペイロードデータを生成する生成部と、前記シリアルバスを介して、前記最小ペイロードデータを一定時間ごとに順番に前記第１メモリに送信する送信部と、前記送信部が第１時点において送信した前記最小ペイロードデータの送信時間を算出する算出部と、算出された前記送信時間が所定の基準値を超えるか否かを判定する判定部と、前記送信時間が前記基準値を超えると判定されたと判定された第２時点から、前記第２時点で送信済みの直近の前記最小ペイロードデータの次に送信される前記最小ペイロードデータを前記送信部が送信する第３時点までの一定期間、前記送信部に前記最小ペイロードデータの送信を待機させる送信制御部とを備えている構成である。
【００１１】
前記の構成によれば、第１時点において第１メモリに送信した最小ペイロードデータの送信時間が、所定の基準値を超えていると判定される場合、そのように判定した第２時点において送信済みの直近の最小ペイロードデータの次に送信される最小ペイロードデータの送信が、一定期間、待機される。これにより、第２時点の後の一定期間、第２通信部が通信データを第１メモリに送信しないので、第１通信部と第２通信部との間でメモリ競合が起こらなくなる。その際、メモリ競合の回避は、算出部が算出した最小ペイロードデータの送信時間の基づいて実現されているため、第１通信部はメモリ競合を防止するための調停処理を実行する必要がない。このように、本発明の一態様に係る情報処理装置は、メモリ競合を防止するための調停処理を制御装置の第１通信部に実行させることなく、メモリ競合の発生を抑制することができる。これにより、第１通信部の負荷を低減することもできる。
【００１２】
本発明の一態様に係る情報処理装置は、前記の構成において、前記第１時点で送信された前記最小ペイロードデータが前記第１メモリに書き込まれたことを示す完了報告を受信する受信部を備えており、前記算出部は、前記第１時点と、前記完了報告を受信した時点とに基づいて、前記送信時間を算出する構成である。
【００１３】
前記の構成によれば、メモリ競合が発生した場合に、その事実を素早く決定することができるので、メモリ競合の発生時にそれを抑制するための措置を素早く取ることができる。
【００１４】
本発明の一態様に係る情報処理装置は、前記の構成において、前記受信部は、続けて送信される複数の前記最小ペイロードデータが前記第１メモリに書き込まれたことを示す前記完了報告を受信し、前記算出部は、前記第１時点と、前記完了報告を受信した時点とに基づいて、１つ当たりの前記最小ペイロードデータの前記送信時間を算出し、前記判定部は、１つ当たりの前記最小ペイロードデータの前記送信時間が前記基準値を超えるか否かを判定する構成である。
【００１５】
前記の構成によれば、複数の最小ペイロードデータに対する書き込み完了報告をまとめて受信する構成する情報処置装置に対しても、本発明を適用することができる。また、判定の実行回数を減らせるので、情報処理装置における判定の負荷を低減することができる。
【００１６】
本発明の一態様に係る情報処理装置は、前記の構成において、前記制御装置は、前記第１通信部が第１データを前記第１メモリとの間で転送する際の送信時間をシミュレーションにより算出すると共に、算出された前記送信時間を表す情報を前記制御装置に提供する外部装置に接続されており、前記外部装置から前記制御装置に提供された前記情報を、前記制御装置から取得する取得部と、前記情報に基づいて、前記一定期間を設定する設定部とを備えている構成である。
【００１７】
前記の構成によれば、シミュレーションにより算出される時間に基づいて一定時間を設定できるので、適切な一定期間を自動的に情報処理装置に設定することができる。すなわち、制御システムの個々のユーザが、自ら一定期間を算出する必要がないため、適切な一定期間を設定するためのユーザの手間を無くすことができる。
【００１８】
本発明の一態様に係る情報処理装置は、前記の構成において、前記第１通信部は、前記制御装置の動作中に、前記第１データを前記第１メモリに送信する際の送信時間を測定し、測定された前記送信時間に基づいて、前記送信時間を表す情報を補正し、前記取得部は、補正された前記情報を前記制御装置から取得する構成である。
【００１９】
前記の構成によれば、第１通信部による第１データの転送時間が制御システムの運用の進行と共に変動する場合、その転送時間の変化に追随して、設定される一定期間を適宜調整できるので、適切な一定期間を情報処理装置に設定し続けることができる。
【００２０】
本発明の一態様に係る情報処理装置は、前記の構成において、前記送信制御部は、前記送信時間が前記基準値を超えると判定されることが、一定回数続けて発生した場合、前記送信部を待機させることなく次の前記最小ペイロードデータを前記送信部に送信させる構成である。
【００２１】
前記の構成によれば、通信データの送信が必要以上に遅延されることを防止できる。
【発明の効果】
【００２２】
本発明の一態様によれば、メモリ競合を防止するための調停処理を制御装置の演算部に実行させることなく、メモリ競合の発生を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００２３】
【図１】本発明の実施形態１に係る制御システムの要部構成を示すブロック図である。
【図２】本発明の実施形態１に係る制御システムによる処理の流れの一例を示すシーケンス図である。
【図３】比較例に係る従来の制御システムによる処理の流れの一例を示すシーケンス図である。
【図４】本発明の実施形態１に係るＡＣＫ送信の一例を示すシーケンス図である。
【図５】本発明の実施形態１に係る制御システムによる処理の流れの他の例を示すシーケンス図である。
【図６】本発明の実施形態２に係る制御システムの要部構成を示すブロック図である。
【図７】本発明の実施形態２に係る制御システムによる処理の流れの一例を示すシーケンス図である。
【発明を実施するための形態】
【００２４】
〔実施形態１〕
以下、本発明の一側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００２５】
§１  適用例
まず、図１および２を参照して、本発明が適用される場面の一例について説明する。図１に示すように、本実施形態に係るユニット２０は、制御システム１においてＰＬＣ１０に接続され、ＰＬＣ１０と協働して動作する情報処理装置である。ユニット２０内のプロトコル制御部３３は、ＰＬＣ１０内のＣＰＵ１１と、ＰＬＣ１０内のメモリ１２を共有しており、いずれもシリアルバス１５を介してメモリ１２と通信する。すなわち、ＣＰＵ１１およびプロトコル制御部３３はメモリ１２を共有している。制御システム１には、ＣＰＵ１１とプロトコル制御部３３とによるメモリ競合を防止するための仕組みが導入されている。
【００２６】
図２に示すように、ＰＬＣ１０は、所定の制御周期が開始されると、制御システム１内の制御対象を制御するための制御データ（第１データ）をメモリ１２から読み出し、制御対象に送信する。ユニット２０のプロトコル制御部３３は、大容量データを複数の最小ペイロードデータに分割し、制御周期においてそれぞれの最小ペイロードデータをシリアルバス１５を介してメモリ１２に送信する。シリアルバス１５における制御データの送信および大容量データの送信が同時に発生する場合、ＣＰＵ１１とプロトコル制御部３３との間にいわゆるメモリ競合が発生し得る。
【００２７】
プロトコル制御部３３は、時刻ｔ４においてメモリ１２に送信した最小ペイロードデータＤ６の送信時間Ｔ２を、例えば最小ペイロードデータＤ６に対するＡＣＫを受信した時刻ｔ５に基づいて算出する。プロトコル制御部３３は、算出した送信時間Ｔ２が、ユニット２０に設定される所定の基準値を超えると判定した場合、ＣＰＵ１１とプロトコル制御部３３との間にメモリ競合が発生したものと見なして、ＡＣＫ受信時点で送信済みの最小ペイロードデータＤ７の次に送信される最小ペイロードデータＤ８の送信を所定の期間Ｔ３だけ待機する。これにより、期間Ｔ３の間は大容量データの送信が待機されるので、ＣＰＵ１１が期間Ｔ３において制御データの転送を継続しても、メモリ競合が発生しにくくなる。結果、各制御周期において、ＣＰＵ１１とプロトコル制御部３３とのメモリ競合の発生を抑制することができる。
【００２８】
§２  構成例
（制御システム１の構成）
図１は、本実施形態に係る制御システム１の要部構成を示すブロック図である。この図の例では、制御システム１は、ＰＬＣ（Programmable Logic Controller）１０（制御装置）およびユニット２０を備えている。図１のＰＬＣ１０は、ＣＰＵ（Central Processing Unit）１１（第１通信部）、メモリ１２（第１メモリ）、切替部１３、プロトコル制御部１４、およびシリアルバス１５を備えている。図１のユニット２０は、ＭＰＵ２１、メモリ２２（第２メモリ）、切替部２３、プロトコル制御部２４、および転送部２５を備えている。図１の転送部２５は、ＤＭＡＣ（Direct Memory Access Controller）３１（第２通信部）、プロトコル制御部３２、およびプロトコル制御部３３を備えている。プロトコル制御部３３は、最小ペイロードデータ生成部４１（生成部、送信制御部）、通信インタフェース４２（送信部、受信部、取得部）、およびＡＣＫ監視部４３（算出部、判定部）を備えている。
【００２９】
制御システム１は、図示しない各種の機器または設備などの複数の制御対象が設置される生産設備を制御するためのシステムである。ＰＬＣ１０は、制御システム１においてこれらの制御対象を制御するように構成されるコントローラの一種である。ＰＬＣ１０および制御対象は、図示しないフィールドネットワーク等の制御系のネットワークに接続されている。ＰＬＣ１０は、制御系のネットワークを介して制御対象と周期的に通信することによって、各種の制御データを制御対象に送受信し、これにより生産設備を制御する。ＰＬＣ１０は、さらに、各制御対象から収集したデータに基づいて、制御システム１の運用状況などの統計処理などに用いられる大容量データ（通信データ）を生成し、メモリ１２に格納する。
【００３０】
ユニット２０は、ＰＬＣ１０に接続され、かつＰＬＣ１０と協働的に動作するデバイス（情報処置装置）である。本実施形態では、ユニット２０は、例えばＰＬＣ１０のＣＰＵ１１の処理負荷を低減させるために、ＰＬＣ１０によって生成される大容量データに対して適用される各種の処理を担当する。このような処理として、例えばパケット分割処理および異常処理などが挙げられる。
【００３１】
（ＰＬＣ１０の詳細構成）
ＰＬＣ１０において、ＣＰＵ１１、メモリ１２、および切替部１３が、それぞれシリアルバス１５に接続されている。シリアルバス１５の一端は、ユニット２０のプロトコル制御部３３内の通信インタフェース４２に接続されている。シリアルバス１５は、シリアル通信を実行される通信経路であり、例えばＰＣＩｅ（Peripheral Component Interconnect express）バスである。
【００３２】
ＣＰＵ１１は、ＰＬＣ１０の動作を統括的に制御するプロセッサである。メモリ１２は、ＲＡＭ（Read Only Memory）などの各種の不揮発性記憶媒体である。切替部１３は、転送部２５の通信相手をＣＰＵ１１またはメモリ１２に切り替える。ＣＰＵ１１は、ＣＰＵ１１とメモリ１２との通信を中継することもできる。これにより、転送部２５とメモリ１２と通信、および転送部２５とＣＰＵ１１との通信をそれぞれ中継する。プロトコル制御部１４は、シリアルバス１５上のシリアル通信に適合した通信プロトコルにより、データを送受信する。
【００３３】
メモリ１２には、制御システム１における制御対象を制御するための制御データが格納されている。ＣＰＵ１１は、制御データをメモリ１２から読み出し、周期的に制御対象に送信する。ＣＰＵ１１は、何らかの事象の発生（たとえば制御データの読み出し開始）をトリガーとして、１つの制御周期を開始させる。そして、制御周期が継続する間、当該周期内に実行すべき各種の制御（例えば制御データの送信など）を実行する。
【００３４】
（ユニット２０の詳細構成）
ユニット２０において、ＭＰＵ２１、メモリ２２、切替部２３、およびＤＭＡＣ３１が、シリアルバス２６に接続されている。ＤＭＡＣ３１は、詳細には、プロトコル制御部３３を介してシリアルバス１５に接続される。ＤＭＡＣ３１は、プロトコル制御部３２を介してさらにシリアルバス１５にも接続されている。シリアルバス２６は、例えばＰＣＩｅ（Peripheral Component Interconnect express）バスである。ＣＰＵ１１およびＤＭＡＣ３１の双方がシリアルバス１５を介してメモリ１２に接続されることによって、ＣＰＵ１１およびＤＭＡＣ３１はメモリ１２を共有している。
【００３５】
ＭＰＵ（Micro Processing Unit）２１は、ユニット２０の動作を統括的に制御するプロセッサである。ＭＰＵ２１は、例えば上述したパケット分割処理および異常処理などの各種の処理を実行する。メモリ２２は、ＲＡＭ（Read Only Memory）などの各種の不揮発性記憶媒体である。メモリ２２には、ユニット２０から転送される大容量データなどが格納される。
【００３６】
切替部２３は、転送部２５の通信相手をＭＰＵ２１またはメモリ２２に切り替える。これにより、転送部２５とメモリ２２と通信、および転送部２５とＭＰＵ２１との通信をそれぞれ中継する。切替部２３は、ＭＰＵ２１とメモリ２２との通信を中継することもできる。プロトコル制御部２４は、シリアルバス２６上のシリアル通信に適合した通信プロトコルにより、プロトコル制御部３２との間でデータを送受信する。
【００３７】
転送部２５は、ＭＰＵ２１またはＣＰＵ１１による制御に従って、ＰＬＣ１０とユニット２０との間のデータ転送を実行する。転送部２５内のＤＭＡＣ３１およびプロトコル制御部３３が、シリアルバス１５を介したメモリ１２との通信を担当する。ＤＭＡＣ３１は、ＣＰＵ１１を介さずにメモリ１２に直接アクセスすることによって、メモリ１２に大容量データを読み書きするコントローラである。ＤＭＡＣ３１は、例えば、メモリ１２から読み出した大容量データをシリアルバス１５上のシリアル通信によってＤＭＡＣ３１まで転送し、さらにシリアルバス２６上のシリアル通信によってメモリ２２まで転送することによって、メモリ２２に書き込む。ＤＭＡＣ３１は、あるいは、メモリ２２から読み出した大容量データを、シリアルバス１５上のシリアル通信によってメモリ１２まで転送することによって、メモリ１２に書き込むこともできる。
【００３８】
プロトコル制御部３２は、プロトコル制御部２４と協働して、シリアルバス２６上でのシリアル通信に適合した通信プロトコルにより、シリアルバス１５上でのデータのシリアル通信を実行する。
【００３９】
プロトコル制御部３３は、プロトコル制御部１４と協働して、シリアルバス１５上でのシリアル通信に適合した通信プロトコルにより、シリアルバス１５上でのデータのシリアル通信を実行する。プロトコル制御部３３内の最小ペイロードデータ生成部４１は、ＤＭＡＣ３１がメモリ１２に転送する大容量データをＤＭＡＣ３１から受け取り、複数の最小ペイロードデータに分割することによって、個々の最小ペイロードデータを生成する。最小ペイロードデータは、シリアルバス１５上のシリアル通信時に通信される最小単位のデータのことである。最小ペイロードデータ生成部４１は、生成した各最小ペイロードデータを通信インタフェース４２に送信する。最小ペイロードデータ生成部４１は、一定時間ごとに、最小ペイロードデータの送信指示をＡＣＫ監視部４３および通信インタフェース４２に出力する。通信インタフェース４２は、これを受けて、各最小ペイロードデータを１つずつ一定時間ごとにシリアルバス１５介してメモリ１２に送信する。
【００４０】
ＡＣＫ監視部４３は、送信された最小ペイロードデータに対するＡＣＫの受信有無を監視する。ＡＣＫは、最小ペイロードデータがメモリ１２に書き込まれたことを示す完了報告である。ユニット２０のプロトコル制御部１４は、ユニット２０から受け取った最小ペイロードデータをメモリ１２に書き込んだ場合、その最小ペイロードデータの書き込みが終了したことを表すＡＣＫを、シリアルバス１５介してユニット２０に送信する。ＡＣＫ監視部４３は、ＡＣＫの受信に基づいて、最小ペイロードデータの送信時間を算出することもできる。
【００４１】
（データ転送の流れ）
図２は、本実施形態に係る制御システム１による処理の流れの一例を示すシーケンス図である。ＣＰＵ１１は、時刻ｔ１において、メモリ１２から制御データの読み出しを開始する。図２では、ＣＰＵ１１は、５つの最小ペイロードデータＲ１〜Ｒ５によって構成される制御データをメモリ１２からＣＰＵ１１に転送するものとする。ＣＰＵ１１は、時刻ｔ１において、制御周期Ｃ１を開始する。制御周期Ｃ１の長さは不定であり、ＣＰＵ１１がメモリ１２から読み出した制御データの処理および制御対象への送信を完了すると、制御周期Ｃ１が終了する。
【００４２】
プロトコル制御部３３は、時刻ｔ１において、大容量データの送信を開始しない。したがって、時刻ｔ１の後、ＣＰＵ１１は転送部２５との間でメモリ競合を起こすことなく制御データの転送を継続する。ＣＰＵ１１は、時刻ｔ１から時刻ｔ２までに５つの最小ペイロードデータＲ１〜Ｒ５の転送を完了し、これにより制御周期Ｃ１における制御データのＣＰＵ１１への転送を完了する。
【００４３】
転送部２５は、制御周期Ｃ１内の時刻ｔ２において、メモリ１２に対する大容量データの送信を開始する。その際、最小ペイロードデータ生成部４１が、送信対象の最小ペイロードデータＤ１の送信指示をＡＣＫ監視部４３および通信インタフェース４２に出力する。ＡＣＫ監視部４３は、これを受けて、最小ペイロードデータＤ１に対するＡＣＫの受信監視を開始する。通信インタフェース４２は、これを受けて、最小ペイロードデータＤ１を、シリアルバス１５を介してメモリ１２に送信する。ＰＬＣ１０では、最小ペイロードデータＤ１をプロトコル制御部１４が受信する。この際、ＣＰＵ１１はシリアルバス１５を介して制御データを転送していないので、メモリ競合が発生しない。したがって、プロトコル制御部１４は、受信した最小ペイロードデータＤ１を遅延無くメモリ１２に書き込む。図２の例では、最小ペイロードデータＤ１の書き込みが時刻ｔ３に終了する。プロトコル制御部３３は、最小ペイロードデータＤ１の書き込みが完了したことを示すＡＣＫを、時刻ｔ３においてシリアルバス１５を介して転送部２５に送信する。
【００４４】
転送部２５内の通信インタフェース４２は、時刻ｔ３において最小ペイロードデータＤ１に対するＡＣＫを受信し、ＡＣＫ監視部４３に出力する。ＡＣＫ監視部４３は、監視を開始した時刻ｔ２と、ＡＣＫを受信した時刻ｔ３とに基づいて、最小ペイロードデータＤ１の送信時間Ｔ１を算出する。ここでは、送信時間Ｔ１は、時刻ｔ２から時刻ｔ３までの経過時間である。ＡＣＫ監視部４３は、時刻ｔ３において、算出した送信時間Ｔ１が基準値を超えているか否かを判定する。ユニット２０には、送信時間Ｔ１よりも長い基準値が事前に設定されている。したがってＡＣＫ監視部４３は、時刻ｔ３において、送信時間Ｔ１が基準値を超えていないと判定する。これにより、禁止信号を最小ペイロードデータ生成部４１に出力しない。
【００４５】
最小ペイロードデータ生成部４１は、時刻ｔ３において禁止信号が入力されないため、時刻ｔ３において次の最小ペイロードデータＤ２の送信指示をＡＣＫ監視部４３および通信インタフェース４２に出力する。ＡＣＫ監視部４３は、これを受けて、最小ペイロードデータＤ２に対するＡＣＫの受信監視を新たに開始する。通信インタフェース４２は、入力された最小ペイロードデータＤ２をシリアルバス１５を介してメモリ１２に送信する。これ以降、制御周期Ｃ１が終了する時刻ｔ４まで、同様の処理が繰り返される。すなわち、時刻ｔ４以降では制御データが転送されていないので、個々の最小ペイロードデータＤ２〜Ｄ５の送信時間が基準値を超えることがない。したがって転送部２５は、メモリ競合を起こすことなく、各最小ペイロードデータＤ２〜Ｄ５を遅延無く順次メモリ１２に送信しかつ書き込む。結果、図２の例では、制御周期Ｃ１の全体を通じて、ＣＰＵ１１および転送部２５がメモリ競合を起こさない。
【００４６】
ＣＰＵ１１は、時刻ｔ４において制御周期Ｃ１を終了させ、次の制御周期Ｃ２を開始する。ＣＰＵ１１は、時刻ｔ４において、制御データの最小ペイロードデータＲ１のメモリ１２からＣＰＵ１１への転送を開始する。一方、プロトコル制御部３３は、時刻ｔ４（第１時点）において、大容量データの最小ペイロードデータＤ６をメモリ１２に送信する。結果、ＣＰＵ１１およびプロトコル制御部３３が同時にメモリ１２にアクセスしようとするので、メモリ競合が発生する。ＰＬＣ１０のプロトコル制御部１４は、ＣＰＵ１１によるメモリアクセスを優先し、メモリ１２から最小ペイロードデータＲ１をメモリ１２から読み出してＣＰＵ１１に送信する。この送信は、時刻ｔ４１に終了する。ＣＰＵ１１は、時刻ｔ４１において、次の最小ペイロードデータＲ２のメモリ１２からの転送を開始する。
【００４７】
時刻ｔ４１は、転送部２５が次の最小ペイロードデータＤ７の送信を開始すべき時刻に等しい。最小ペイロードデータ生成部４１は、時刻ｔ４の後に一定時間が経過したことに基づいて、時刻ｔ４１において次の最小ペイロードデータＤ７の送信指示をＡＣＫ監視部４３および通信インタフェース４２に出力する。ＡＣＫ監視部４３は、最小ペイロードデータＤ６のＡＣＫをまだ受信していないため、新たな送信指示を受信した場合であっても、最小ペイロードデータＤ６のＡＣＫ受信監視を継続する。通信インタフェース４２は、時刻ｔ４１において、入力された最小ペイロードデータＤ７をシリアルバス１５を介してメモリ１２に送信する。
【００４８】
プロトコル制御部３３は、時刻ｔ４１において、メモリ競合のために書き込みを待機していた最小ペイロードデータＤ６を、メモリ１２に対する書き込む。この書き込みは、時刻ｔ５において終了する。プロトコル制御部３３は、時刻ｔ５において、最小ペイロードデータＤ６に対するＡＣＫを転送部２５に送信する。
【００４９】
通信インタフェース４２は、時刻ｔ５（第２時点）において最小ペイロードデータＤ６に対するＡＣＫを受信し、ＡＣＫ監視部４３に出力する。ＡＣＫ監視部４３は、監視を開始した時刻ｔ４と、ＡＣＫを受信した時刻ｔ５とに基づいて、最小ペイロードデータＤ６の送信時間Ｔ２を算出する。ここでは、送信時間Ｔ２は、時刻ｔ４から時刻ｔ５までの経過時間である。ＡＣＫ監視部４３は、時刻ｔ５において、算出した送信時間Ｔ２が基準値を超えているか否かを判定する。図２の例では、送信時間Ｔ２は、２つの最小ペイロードデータが遅延無く送信される場合の送信時間Ｔ１の合計にほぼ等しく、したがって送信時間Ｔ１の２倍程度の値を有する。したがってＡＣＫ監視部４３は、時刻ｔ５において、送信時間Ｔ２が基準値を超えていると判定する。これにより、時刻ｔ５において、禁止信号を最小ペイロードデータ生成部４１に出力する。
【００５０】
時刻ｔ５は、転送部２５が次の最小ペイロードデータＤ８の送信を開始すべき時刻に等しい。最小ペイロードデータ生成部４１は、禁止信号が入力されたことに基づいて、次の最小ペイロードデータＤ８の送信指示をすぐには出力せず、時刻ｔ５の後に所定の期間Ｔ３（一定期間）が経過して時刻ｔ６（第３時点）になるまで、指示送信の出力を待機する。期間Ｔ３は、メモリ競合が発生した場合に次の最小ペイロードデータの送信を通信インタフェース４２に待機させる待機期間として、予めユニット２０に設定されている。図２の例では、最小ペイロードデータ生成部４１は、時刻ｔ４から時刻ｔ５までの期間Ｔ３において、メモリ１２に対する次の最小ペイロードデータＤ８の送信を通信インタフェース４２に待機させる。
【００５１】
時刻ｔ５において、メモリ１２から最小ペイロードデータＲ２の読み出しおよびメモリ１２に対する最小ペイロードデータのＤ７の書き込みがまだ終了していない。すなわち、ここでもＣＰＵ１１およびプロトコル制御部３３はメモリ競合を起こしている。最小ペイロードデータＲ２の読み出しおよび最小ペイロードデータのＤ７の書き込みの実行は、いずれも期間Ｔ３にずれ込む。プロトコル制御部１４は、最小ペイロードデータＲ１をメモリ１２から読み出してＣＰＵ１１に転送し、次に、最小ペイロードデータＤ７をメモリ１２に書き込む。時刻ｔ５の後、ＣＰＵ１１は、残りの最小ペイロードデータＲ３〜Ｒ５の転送を順次実行する。これらのデータがＣＰＵ１１に転送されるタイミングは、いずれも期間Ｔ３内にある。期間Ｔ３では、最小ペイロードデータＤ８の送信が待機されることから、大容量データの送信が実行されない。したがって、ＣＰＵ１１は、最小ペイロードデータＲ３〜Ｒ５についてはメモリ競合を起こすことなく、すなわち遅延せずにメモリ１２に読み出すことができる。図２の例では、制御データのうちメモリ競合を起こしているのは最初の２つの最小ペイロードデータＲ１およびＲ２のみであり、残りの３つの最小ペイロードデータＲ３、Ｒ４、Ｒ５はいずれもメモリ競合を起こしていない。
【００５２】
（比較例）
図３は、比較例に係る従来の制御システムによる処理の流れの一例を示すシーケンス図である。比較例では、図２に示すような最小ペイロードデータの送信待機処理を実行しない。そのため、時刻ｔ２においてＣＰＵ１１およびプロトコル制御部３３がメモリ競合を起こした後、制御周期Ｃ２内でメモリ競合が終了することなく、制御周期Ｃ２の終了時点までメモリ競合が発生し続けることになる。すなわち、制御周期Ｃ２において、制御データの５つの最小ペイロードデータと、大容量データの５つの最小ペイロードデータとが、すべてメモリ競合を起こしている。したがって、制御データの各最小ペイロードデータと、大容量データの各最小ペイロードデータとが、１つ交互に順番に転送されることになる。
【００５３】
（主要な作用効果）
図２に示すように、最小ペイロードデータ生成部４１は、制御周期Ｃ２において最小ペイロードデータＤ６の送信時間Ｔ２が基準値を超えると判定された時刻ｔ５から、時刻ｔ５において送信済みの直近の最小ペイロードデータＤ７の次に送信される最小ペイロードデータＤ８を通信インタフェース４２が送信する時刻ｔ６までの期間Ｔ３において、通信インタフェース４２に最小ペイロードデータＤ８の送信を待機させる。これにより、メモリ競合が発生している時刻ｔ３よりも後の期間Ｔ３において、大容量データの最小ペイロードデータＤ８の送信が待機されるので、最小ペイロードデータＲ３〜Ｒ５についてはメモリ競合を起こさない。結果、図３に示す比較例に比べて制御周期Ｃ２におけるメモリ競合の発生を抑制することができる。
【００５４】
ＡＣＫ監視部４３は、制御周期Ｃ１では、最小ペイロードデータＤ１の送信を開始した時刻ｔ１と、最小ペイロードデータＤ１に対するＡＣＫを受信した時刻ｔ２とに基づいて、最小ペイロードデータＤ１の送信時間Ｔ１を算出する。また、制御周期Ｃ２では、最小ペイロードデータＤ６の送信を開始した時刻ｔ４と、最小ペイロードデータＤ６に対するＡＣＫを受信した時刻ｔ５とに基づいて、制御周期Ｃ２における最小ペイロードデータＤ６の送信時間Ｔ２を算出する。いずれも場合、１つの最小ペイロードデータＤ１またはＤ６に対するＡＣＫの受信に基づいて送信時間を算出するので、ある最小ペイロードデータの送信を原因とするメモリ競合の発生時点と、そのメモリ競合の発生有無を判定する時点とに大きな時間差が生じない。これにより、メモリ競合の発生した場合に、その事実を素早く決定することができるので、メモリ競合の発生時にそれを抑制するための措置を素早く取ることができる。
【００５５】
（送信時間算出の他の例）
図４は、本実施形態に係るＡＣＫ送信の一例を示すシーケンス図である。図４の例では、ＡＣＫ監視部４３は、監視開始時刻Ｔｓに、最小ペイロードデータのＡＣＫ監視を開始する。プロトコル制御部３３は、監視開始時刻Ｔｓに、ｎ番目の最小ペイロードデータをＰＬＣ１０に送信する。ＰＬＣ１０では、プロトコル制御部１４がｎ番目の最小ペイロードデータを受信し、メモリ１２に書き込む。この際、プロトコル制御部１４は、ｎ番目の最小ペイロードデータが書き込まれたことを示すＡＣＫを、プロトコル制御部３３に送信しない。プロトコル制御部３３は、続けて、ｎ＋１からｎ＋３番目の最小ペイロードデータを、順次、ＰＬＣ１０に送信する。プロトコル制御部１４は、これらの最小ペイロードデータを受信し、メモリ１２に書き込む。その際、プロトコル制御部２４は、ｎ＋３番目の最小ペイロードデータの書き込みを終了した場合、ｎ〜ｎ＋３番目の合計４つの最小ペイロードデータが書き込まれたことを示すＡＣＫを生成し、プロトコル制御部３３に送信する。図４のＡＣＫ：ｎ＋３は、このＡＣＫが、ｎ〜ｎ＋３番目の最小ペイロードデータに関する書き込み完了報告であることを示している。
【００５６】
プロトコル制御部３３は、受信したＡＣＫ：ｎ＋３をＡＣＫ監視部４３に出力する。ＡＣＫ監視部４３は、ＡＣＫ：ｎ＋を受信した時点を、監視終了時刻Ｔｅであると決定する。そして、監視開始時刻Ｔｓおよび監視終了時刻Ｔｅに基づいて、続けて送信した４つの最小ペイロードデータｎ〜ｎ＋３の１つ当たりの送信時間を算出する。詳細には、監視終了時刻Ｔｅから監視開始時刻Ｔｓまでの経過時間を、４で除算することによって、送信時間を算出する。
【００５７】
ＡＣＫ監視部４３は、算出された送信時間が基準値を超えているか否かを判定し、超えていると判定した場合、禁止信号を最小ペイロードデータ生成部４１に出力する。
【００５８】
図４の例では、送信された最小ペイロードデータごとにＡＣＫを送信せず、まとまった複数の最小ペイロードデータごとにＡＣＫを送信する仕様の制御システム１においても、大容量データの送信時に最小ペイロードデータの送信遅延（すなわちメモリ競合）が発生した否かを判定することができる。したがって、送信遅延の発生後にメモリ競合の発生を抑制することができる。図４の例では、さらに、最小ペイロードデータごとに判定処理を実行する例に比べて、判定の実行回数を減らせるので、制御システム１における判定の負荷を低減することができる。
【００５９】
（メモリ競合の連続発生）
図５は、本実施形態に係る制御システム１による処理の流れの他の例を示すシーケンス図である。図５の例では、ＣＰＵ１１は、図２に比べて容量の大きい制御データをＣＰＵ１１から読み出す。詳細には、１５個の最小ペイロードデータＲ１〜Ｒ１５からなる制御データがメモリ１２に格納されており、ＣＰＵ１１はこれを制御周期Ｃ１内にＣＰＵ１１読み出す。制御データの容量が多いためその転送により長い時間を要し、これによりメモリ競合が発生し安くなっている。
【００６０】
例えば、制御周期Ｃ１の開始時点の時刻ｔ１１において、ＣＰＵ１１が最小ペイロードデータＲ１をメモリ１２から読み出そうとし、プロトコル制御部３３が最小ペイロードデータＤ１をメモリ１２に書き込もうとしているので、メモリ競合が発生している。これにより、ＡＣＫ監視部４３は、最小ペイロードデータＤ１の送信が完了する時刻ｔ１２において、最小ペイロードデータＤ１の送信時間Ｔ２が基準値を超えていると判定する。結果、通信インタフェース４２は、時刻ｔ１２の後の期間Ｔ３において、最小ペイロードデータＤ３の送信を待機する。通信インタフェース４２は、時刻ｔ１３において、最小ペイロードデータ生成部４１から最小ペイロードデータＤ３の送信指示を受信し、これにより時刻ｔ１３において最小ペイロードデータＤ３をメモリ１２に送信する。
【００６１】
図５の例では、時刻ｔ１５において、ＣＰＵ１１が最小ペイロードデータＲ６をメモリ１２から読み出そうとし、プロトコル制御部３３が最小ペイロードデータＤ３をメモリ１２に書き込もうとしているので、メモリ競合が発生している。すなわち、期間Ｔ３だけ送信を待機した後、メモリ競合が再び発生している。これによりＰＬＣ１０は、これにより、ＡＣＫ監視部４３は、最小ペイロードデータＤ３の送信が完了する時刻ｔ１５において、最小ペイロードデータＤ３の送信時間Ｔ２が基準値を超えていると判定する。結果、通信インタフェース４２は、時刻ｔ１４の後の期間Ｔ３において、最小ペイロードデータＤ５の送信を待機する。通信インタフェース４２は、時刻ｔ１５において、最小ペイロードデータ生成部４１から最小ペイロードデータＤ５の送信指示を受信し、これにより時刻ｔ１５において最小ペイロードデータＤ３をメモリ１２に送信する。
【００６２】
図５の例では、時刻ｔ１５において、ＣＰＵ１１が最小ペイロードデータＲ１１をメモリ１２から読み出そうとし、プロトコル制御部３３が最小ペイロードデータＤ５をメモリ１２に書き込もうとしているので、メモリ競合が発生している。すなわち、期間Ｔ３だけ送信を待機した後、メモリ競合が再び発生している。これによりＰＬＣ１０は、これにより、ＡＣＫ監視部４３は、最小ペイロードデータＤ３の送信が完了する時刻ｔ１６において、最小ペイロードデータＤ３の送信時間Ｔ２が基準値を超えていると判定する。
【００６３】
ＡＣＫ監視部４３は、時刻ｔ１６において、最小ペイロードデータの送信時間が基準値を超えていることが、一定回数続けて発生しているか否かを判定する。図５では、一定回数として、３回がユニット２０に予め設定されている。したがって、ＡＣＫ監視部４３は、最小ペイロードデータの送信時間が基準値を超えていることが一定回数続けて発生しているかと判定する。結果、ＡＣＫ監視部４３は、時刻ｔ１６において、禁止信号を最小ペイロードデータ生成部４１に出力しない。これにより最小ペイロードデータ生成部４１は、期間Ｔ３の経過を待機せずに、時刻ｔ１６の時点で送信済みの最小ペイロードデータＤ６の次に送信される最小ペイロードデータＤ７の送信指示を、直ちにＡＣＫ監視部４３および通信インタフェース４２に出力する。これにより、通信インタフェース４２は、時刻ｔ１６において、最小ペイロードデータＤ７をメモリ１２に送信する。この後、ＡＣＫ監視部４３は、各最小ペイロードデータの送信時間に関わらず、禁止信号を最小ペイロードデータ生成部４１に送信しない。したがって、最小ペイロードデータ生成部４１は、最小ペイロードデータＤ７よりも後に送信される各最小ペイロードデータＤ８、Ｄ９、・・・については、規定の一定時間ごとにその送信指示を通信インタフェース４２に出力する。
【００６４】
図５に示すように、最小ペイロードデータＤ７の送信後には、最小ペイロードデータＲ１２〜Ｒ１５のいずれかの読み出しと、最小ペイロードデータＤ６〜Ｄ９のいずれかの書き込みとが常にメモリ競合を起こしている。一方で、時刻ｔ１６以降は大容量データの送信が期間Ｔ３を待機せずに実行されることから、メモリ競合を起こしながらも大容量データの送信が制御データの転送完了を待つことなく少しずつ実行されることになる。これにより、メモリ競合が繰り返し続けて起こる場合に大容量データの送信が必要以上に遅延されることを防止できる。
【００６５】
〔実施形態２〕
以下、本発明の他の側面に係る実施の形態（以下、「本実施形態」とも表記する）を、図面に基づいて説明する。
【００６６】
§２  構成例
（制御システム１Ａの構成）
図６は、本実施形態に係る制御システム１Ａの要部構成を示すブロック図である。この図の例では、制御システム１は、ＰＬＣ１０、ユニット２０、および設定装置５０を備えている。図６のＰＬＣ１０およびユニット２０の内部構成は、それぞれ図１のＰＬＣ１０およびユニット２０の内部構成と同一であるため、詳細な説明を繰り返さない。
【００６７】
設定装置５０は、ＰＬＣ１０に接続され、かつ制御システム１の管理者などのユーザによって操作される外部装置である。設定装置５０は、プログラム作成部５１、シミュレーション実行部５２、および設定部５３を備えている。設定部５３は、ＰＬＣ１０のＣＰＵ１１に接続されている。ＰＬＣ１０は、ユーザが作成したプログラムを実行する装置であり、設定装置５０は、ユーザにプログラムを作成させる装置である。
【００６８】
プログラム作成部５１は、ユーザによる設定装置５０の操作に従って、ＰＬＣ１０において実行されるプログラムを作成する。設定部５３は、作成されたプログラムをＣＰＵ１１に提供する。ＣＰＵ１１は、提供されたプログラムを実行する。シミュレーション実行部５２は、作成されたプログラムをシミュレーションにより実行する。言い換えれば、ＰＬＣ１０においてＣＰＵ１１がプログラムを実行する際の挙動を、設定装置５０においてシミュレートする。シミュレーション実行部５２は、生成されたプログラムをシミュレーションにより実行することによって、ＣＰＵ１１が制御データをメモリ１２との間で通信する際の通信時間をシミュレーションにより算出する。
【００６９】
図７は、本実施形態に係る制御システム１による処理の流れの一例を示すシーケンス図である。図７の例では、シミュレーション実行部５２は、５つの最小ペイロードデータＲ１〜Ｒ５からなる制御データの転送に要する時間Ｔｃｐｕを算出する。設定部５３は、算出された時間Ｔｃｐｕを、ＣＰＵ１１に出力する。ＣＰＵ１１は、受信した時間Ｔｃｐｕを表す情報を生成し、シリアルバス１５介してプロトコル制御部３３に送信する。プロトコル制御部３３では、通信インタフェース４２が時間Ｔｃｐｕを表す情報を受信し、ＡＣＫ監視部４３に出力する。言い換えれば、通信インタフェース４２は、時間Ｔｃｐｕを表す情報をＣＰＵ１１から取得する。ＡＣＫ監視部４３は、入力された情報を最小ペイロードデータ生成部４１に出力する。最小ペイロードデータ生成部４１は、入力された時間Ｔｃｐｕを表す情報に基づいて、期間Ｔ３をユニット２０に設定する。図７の例では、時間Ｔｃｐｕを所定の係数Ｎで除算した期間Ｔ３を設定している。係数Ｎは、ユニット２０に予め設定されている。図７の例では、Ｎ＝１である。すなわち、期間Ｔ３の長さは、シミュレーションによって算出された時間Ｔｃｐｕに等しい。Ｎの値は、制御システム１の運用状況に応じた任意の値であればよく、例えば２または４であって良い。ユーザが、係数Ｎの値を設定装置５０に設定することもできる。この場合、設定部５３は、ユーザによって設定された係数Ｎの値を、ＣＰＵ１１に出力する。ＣＰＵ１１は、時間Ｔｃｐｕをプロトコル制御部３３に提供する場合と同じように、シリアルバス１５などを介して係数Ｎの値を最小ペイロードデータ生成部４１に提供する。最小ペイロードデータ生成部４１は、提供された係数Ｎの値をユニット２０に設定する。
【００７０】
（主要な作用効果）
シミュレーションにより算出される時間Ｔｃｐｕに基づいて期間Ｔ３を設定できるので、適切な期間Ｔ３を自動的にユニット２０に設定することができる。すなわち、制御システム１の個々のユーザが、自ら期間Ｔ３を算出する必要がないため、適切な期間Ｔ３をユニット２０に設定するためのユーザの手間を無くすことができる。言い換えれば、ユーザが自身の制御システム１においてＰＬＣ１０に実行させるプログラムを作成しさえすれば、最小ペイロードデータ生成部４１が適切な期間Ｔ３を自動的にユニット２０に設定することができる。
【００７１】
（変形例）
ＣＰＵ１１は、ＰＬＣ１０の動作中に、すなわちユーザによって作成されたプログラムの実行中に、ＣＰＵ１１が制御データをメモリ１２との間で転送する際の転送時間を測定することができる。ＣＰＵ１１は、当該転送時間を測定した場合、設定部５３から提供された時間Ｔｃｐｕを表す情報を、ＣＰＵ１１が測定した転送時間に基づいて補正する。例えば、当該情報が表す時間Ｔｃｐｕを、ＣＰＵ１１が測定した転送時間に近づける。ＣＰＵ１１は、補正後の情報をユニット２０に送信する。これにより、最小ペイロードデータ生成部４１は、ＣＰＵ１１による制御データの実際の転送時間により近い時間Ｔｃｐｕに基づいて、期間Ｔ３をユニット２０に設定することができる。したがって、メモリ競合が発生した場合に、次の最小ペイロードデータを送信するまで通信インタフェース４２をより適切な期間Ｔ３だけ待機させることができる。また、ＣＰＵ１１による制御データの転送時間が制御システム１の運用の進行と共に変動する場合、その転送時間の変化に追随して時間Ｔｃｐｕを適宜調整できるので、適切な期間Ｔ３を設定し続けることができる。
【００７２】
〔ソフトウェアによる実現例〕
ユニット２０の制御ブロック（特に転送部２５およびＤＭＡＣ３４）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ソフトウェアによって実現してもよい。
【００７３】
後者の場合、ユニット２０、２０Ａ、および２０は、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータを備えている。このコンピュータは、例えば１つ以上のプロセッサを備えていると共に、前記プログラムを記憶したコンピュータ読み取り可能な記録媒体を備えている。そして、前記コンピュータにおいて、前記プロセッサが前記プログラムを前記記録媒体から読み取って実行することにより、本発明の目的が達成される。前記プロセッサとしては、例えばＣＰＵ（Central Processing Unit）を用いることができる。前記記録媒体としては、「一時的でない有形の媒体」、例えば、ＲＯＭ（Read Only Memory）等の他、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、前記プログラムを展開するＲＡＭ（Random Access Memory）などをさらに備えていてもよい。また、前記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して前記コンピュータに供給されてもよい。なお、本発明の一態様は、前記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７４】
本発明は前述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態も、本発明の技術的範囲に含まれる。各実施形態にそれぞれ開示された技術的手段を組み合わせることによって、新しい技術的特徴を形成することもできる。
【符号の説明】
【００７５】
１、１Ａ  制御システム
１０  ＰＬＣ
１１  ＣＰＵ
１２、２２  メモリ
１３、２３  切替部
１４、２４、３２、３３  プロトコル制御部
１５、２６  シリアルバス
２０  ユニット
２１  ＭＰＵ
２５  転送部
３１、３４  ＤＭＡＣ
４１  最小ペイロードデータ生成部
４２  通信インタフェース
４３  ＡＣＫ監視部
５０  設定装置
５１  プログラム作成部
５２  シミュレーション実行部
５３  設定部
【図１】
2020187659.tif 000003
【図２】
2020187659.tif 000004
【図３】
2020187659.tif 000005
【図４】
2020187659.tif 000006
【図５】
2020187659.tif 000007
【図６】
2020187659.tif 000008
【図７】
2020187659.tif 000009