JP4978757B1 - データ設定装置 - Google Patents

データ設定装置 Download PDF

Info

Publication number
JP4978757B1
JP4978757B1 JP2012012460A JP2012012460A JP4978757B1 JP 4978757 B1 JP4978757 B1 JP 4978757B1 JP 2012012460 A JP2012012460 A JP 2012012460A JP 2012012460 A JP2012012460 A JP 2012012460A JP 4978757 B1 JP4978757 B1 JP 4978757B1
Authority
JP
Japan
Prior art keywords
data
variable
plc
frame
written
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.)
Active
Application number
JP2012012460A
Other languages
English (en)
Other versions
JP2013152570A (ja
Inventor
雄大 永田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2012012460A priority Critical patent/JP4978757B1/ja
Priority to EP12866546.0A priority patent/EP2808748B1/en
Priority to PCT/JP2012/055405 priority patent/WO2013111351A1/ja
Priority to CN201280067859.3A priority patent/CN104067185B/zh
Priority to US14/373,960 priority patent/US9645567B2/en
Application granted granted Critical
Publication of JP4978757B1 publication Critical patent/JP4978757B1/ja
Publication of JP2013152570A publication Critical patent/JP2013152570A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/054Input/output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40169Flexible bus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • H04L12/4035Bus networks with centralised control, e.g. polling in which slots of a TDMA packet structure are assigned based on a contention resolution carried out at a master unit
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13004Programming the plc
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/4026Bus for use in automation systems

Abstract

【課題】PLCに対する可変長データの書き込みを簡単かつ安全に実行するための技術を提供する。
【解決手段】本発明では、PLCのデータ領域の先頭に終端コードをまず書き込み、そして先頭以外のデータを順次書き込んだ後で、最後に先頭のデータを書き込む、という手順を採用することで、過渡期間のあいだはデータ領域の中が空データと認識されるようにした。
【選択図】図4

Description

本発明は、PLCに設定されている変数をネットワークを介して書き換えるための技術に関する。
FA(Factory Automation)においては、各種生産設備の制御やデータ収集を行う複数のスレーブ装置と、それらのスレーブ装置を集中管理するマスター装置(PLC:Programmable Logic Controller)とを制御系ネットワーク(フィールドネットワーク)で接続
して構成される産業用ネットワークシステムにより、生産設備の制御が行われる。また、各生産ラインあるいは生産拠点に設置されたPLCには情報系ネットワークを介して上位のコンピュータに接続されており、システム管理者やエンジニアはこのコンピュータを用いて各々のシステムの状態監視やメンテナンスなどを行うことが可能になっている。
一般なPLCでは、ラダープログラムなどで利用される情報が設定変数としてメモリ内に格納されており、外部のコンピュータからこれらの設定変数を書き換えることで、PLCの動作を変更したり修正(デバッグ)したりできる仕様になっている。設定変数のデータ型には、INT型(整数型)、REAL型(実数型)のように固定長のものと、STRING型(文字列型)のように可変長のものとがある。従来のPLCでは、STRING型などの可変長データは、その上限サイズが比較的小さい値(例えば256バイト)に制限されていた。
このように上限サイズが決められていた理由の一つに、産業用ネットワークにおける最大フレーム長(一回のデータ伝送で送信可能なフレームのサイズ)からの制約が挙げられる。産業用ネットワークには様々な規格が存在するが、例えば制御系ネットワークの代表であるDeviceNetやCompoNetなどでは、最大フレーム長が500バイト程度とかなり小さい。この制限のなかで外部コンピュータから設定変数を読み出したり書き換えたりしなければならないため、上記のように256バイト程度に抑える必要があったのである。
従来は256バイト超の変数をPLCで扱うことがそもそも想定されていなかったので、上記のような制限が問題とされることは殆ど無かった。しかしながら、近年のPLCの高機能化にともない、例えば数Kバイト〜数Mバイトの設定変数をPLC側に持たせられるようにし、より高度な処理や柔軟な処理を実現したい、というニーズが出始めてきている。とはいえ、PLC側の拡張は比較的容易であるものの、ネットワークの規格である最大フレーム長を拡張することは実際上難しい。したがって、大きなサイズのデータを既存の産業用ネットワークの枠組みの中で送受信するための仕組みが必要となる。
一般的なTCP/IP通信においては、IPパケットのサイズがMTU(Maximum Transmission Unit)を超えている場合に、複数のパケットに分割して送信し、受信側でバラ
バラに受け取ったパケットをヘッダ情報を基につなぎ合わせて元のパケットを復元する、という仕組み(IPフラグメンテーション)が備わっている(例えば特許文献1参照)。しかしながら、このようなフラグメンテーションの仕組みは、産業用ネットワークで一般に用いられるプロトコル(例えばCIP(Common Industrial Protocol))には用意されていない。
特開2001−313675号公報
最大フレーム長よりも大きいサイズの変数を外部コンピュータから書き換えるとなれば、データを複数のフレームに分けて伝送する方法を採らざるを得ない。この場合に、複数回に分けて受信したデータをPLC側でつなぎ合わせて元のデータを復元した後、メモリ内の変数を上書きする、という手順をとることができれば安全であるが、産業用ネットワークのプロトコルの上ではそのような手順を実装することが難しい。産業用ネットワークのプロトコルはリアルタイム性及び伝送効率を重視した設計になっており、TCP/IPで言うところのセッション管理のような仕組みをもたないため、分割したデータすべてをPLC側で間違いなく受け取ったかどうかを判断したり保証したりすることができないからである。
そこで、本発明者は、分割したデータをオフセット(変数の先頭からのアドレス)とともにPLCに送信し、PLC側ではデータを受信するたびに逐次メモリ内の変数領域に書き込んでいく、という手順を試みた。この手順の一例を図5に示す。図5(A)はPLCに書き込むデータを示し、(B)はコンピュータから送信するフレームとPLCのメモリの状態を時系列に示している。ここでは、変数「abc」に対し「ABCDEFG」という文字列を設定する手順を例示している。1つのフレームで伝送できるデータサイズは5バイトと仮定する。また、PLCのメモリには変数abcのデータ領域として10バイトが割り当てられており、初期状態では、「123456」という文字列が格納されているものとする。
図5(A)に示すように、書き込むデータはSTRING型のデータであり、「A,B,C,D,E,F,G」それぞれの文字コード「41,42,43,44,45,46,47」と終端文字nullのコード「00」の8バイトで構成される。1つのフレームで5バイトしか伝送できないので2回に分けて伝送する。まず1フレーム目では、先頭から5バイトのデータ(「ABCDE」の5文字分のコード)がオフセット「0」とともに伝送される。PLCは、このフレームを受け取ると、変数abcのオフセット「0」のアドレスに「ABCDE」の文字コードを書き込む。2フレーム目では、残りの3バイトのデータ(「FG」の文字コードと終端文字のコード)がオフセット「5」とともに伝送される。PLCは、このフレームを受け取ると、変数abcのオフセット「5」のアドレスに「FG」の文字コードと終端文字のコードを書き込む。これにより、PLCのメモリ内の設定変数の書き換えが完了する。
図5の手順はシンプルであり産業用ネットワークへの実装が容易という利点がある。しかしながら、この手順の場合には、次のような問題が発生するおそれがある。図5(B)をみると分かるように、1フレーム目のデータが書き込まれてから2フレーム目のデータが書き込まれるまでの過渡期間において、PLCの変数abcのデータ領域が「ABCDE6」という状態になる。この文字列は不正なデータであるものの、STRING型のデータ構造に則っているため、PLC側ではこのデータが正常なのか不正なのかを判別することができない。もし、この過渡期間のあいだに、PLC上で動作する制御プログラムが変数abcを参照する処理が発生した場合には、PLCの誤動作(意図しない動作)を引き起こすおそれがある。生産現場においてはPLCの稼働を停めずに設定変数の変更や修正をオンラインで行わなければならない場面も少なくない。したがって、PLCが書き込み途中のデータを使って誤動作を起こすリスクは最小限にしなければならない。なおここでは、STRING型のデータを例に挙げたが、所定の終端コードで終端されている可変長のデータをPLCに書き込む場合には、同様の問題が発生し得る。
本発明は上記課題を解決するためになされたものであって、PLCに対する可変長データの書き込みを簡単かつ安全に実行するための技術を提供することを目的とする。
上記目的を達成するために、本発明では、PLCのデータ領域の先頭に終端コードをまず書き込み、そして先頭以外のデータを順次書き込んだ後で、最後に先頭のデータを書き込む、という手順を採用することで、過渡期間のあいだはデータ領域の中が空データと認識されるようにしたことを要旨とする。
具体的には、本発明に係るデータ設定装置は、PLCに設定されている変数をネットワークを介して書き換えるためのデータ設定装置であって、書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをPLCに伝送することによって、前記PLCに当該変数の書き換えを行わしめる、データ設定手段を有しており、書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが1つのフレームで伝送可能な最大サイズを超えている場合に、前記データ設定手段は、前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算し、最初に、前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記PLCに伝送し、次に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記PLCに伝送し、最後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記PLCに伝送することを特徴とするデータ設定装置である。
この構成によれば、データの書き込みの過渡期間、すなわち、データの書き込みを開始してから最後の分割データの書き込みが完了するまでのあいだは、データ領域の先頭アドレスに終端データが設定された状態が維持される。したがって、もし過渡期間のあいだにPLCが当該変数を参照したとしても、PLCは当該変数が空(データが設定されていない)であると認識する。変数が空の場合の動作はPLCの設計しだいであるが、少なくとも、不正なデータに起因する異常動作(意図しない動作)は未然に防止することができる。
このようにデータ書き換えの過渡期間における異常動作を予防したことから、前記データ設定手段は、前記PLCの稼働中に前記変数の書き換えを安全に行うことができる。ここで、前記変数は、nullコードで終端される文字列型の変数であるとよい。また、前記ネットワークが産業用ネットワークであり、前記フレームの伝送に用いられるプロトコルがフラグメンテーションの仕組みをもたないプロトコルであるとよい。産業用ネットワークは1つのフレームで伝送可能な最大サイズが比較的小さいので、本発明のような分割伝送による書き換えを好適に適用できるからである。
なお、本発明は、上記手段の少なくとも一部を含むデータ設定装置として特定することもできるし、データ設定装置とPLCとを有するデータ設定システムとして特定することもできる。また本発明は、上記処理の少なくとも一部をコンピュータが実行するデータ設定方法として特定することもできるし、上記処理の少なくとも一部をコンピュータに実行させるプログラムや、そのプログラムを記録したコンピュータ読取可能な記憶媒体として特定することもできる。上記処理や手段の各々は、技術的な矛盾が生じない限りにおいて、自由に組み合わせることが可能である。
本発明によれば、PLCに対する可変長データの書き込みを簡単かつ安全に実行することができる。
産業用ネットワークシステムの構成例を示す図。 PLC設定変数の読み込み/書き込みを指示する操作画面の一例を示す図。 本発明の実施形態におけるSTRING型変数の書き換え手順のフローチャート。 本発明の実施形態におけるSTRING型変数の書き換え手順を説明するための図。 課題を説明するための図。
以下、図面を参照しつつ、本発明の好適な実施の形態を説明する。以下の実施形態では、EtherNet/IPで接続されたコンピュータ(データ設定装置)とPLCの間でCIPのメッセージ通信を使ってSTRING型変数を書き換える例を挙げるが、本発明の適用範囲はこれに限られない。所定の終端コードで終端されている可変長のデータ型の変数をネットワーク経由で書き換える目的であれば、ネットワーク、プロトコル、データ型などを選ばず、本発明を好ましく適用することができる。ただし、産業用ネットワークのような特殊な分野のネットワークは、送信可能なフレームサイズの上限が小さく、またセッション管理やフラグメンテーションなどの仕組みをもたないため、本発明を特に好ましく適用できる対象といえる。
(システムの構成)
まず、図1を用いて、産業用ネットワークシステムの構成例を説明する。
図1の産業用ネットワークシステムは、PLC(Programmable Logic Controller)2
00と複数のスレーブ装置300とから構成されている。PLC200とスレーブ装置300の間は、制御系ネットワークNW2または内部バスにより接続されている。スレーブ装置300には、電源ユニット,モータユニット,カウンタユニット,画像ユニット,通信ユニット,I/Oユニット等がある。このような産業用ネットワークシステムは、工場の生産ライン等において、各種の生産設備(モータ、ロボット、センサなど)の制御やデータ収集などを行うために用いられる。
PLC200は、情報系ネットワークNW1を介してコンピュータ100に接続されている。このコンピュータ100は、例えばシステム管理者が各拠点のシステムの状態を監視したり、エンジニアがオンラインでPLC200やスレーブ装置300のメンテナンスを行うためなどに用いられる。コンピュータ100としては、表示装置101、入力装置102などを具備する汎用のパーソナルコンピュータを用いることができ、後述するPLC設定変数の読み込み/書き込みの機能(データ設定手段)などは、コンピュータ100内の記憶装置に格納されたプログラムをCPUが実行することにより実現される。
(PLC設定変数の読み込み/書き込み)
PLC200のメモリには、ラダープログラムなどの制御プログラムで利用される各種の情報が設定変数として格納されており、コンピュータ100からこれらの設定変数を書き込みあるいは書き換えることで、PLC200やスレーブ装置300の動作を変更したり修正(デバッグ)したりすることができる。
設定変数のデータ型には、例えば、BOOL型(論理型)、INT型(整数型)、REAL型(実数型)、BYTE型、WORD型、STRING型(文字列型)などがある。
BOOL型、INT型、REAL型、BYTE型、WORD型はいずれも固定長であり、それぞれ1バイト、2バイト、4バイト、1バイト、2バイトのデータサイズをとる。一方、STRING型は可変長であり、最大で1986バイトのサイズをとる。STRING型の変数には、null文字(終端コード)で終端された文字列が格納され、例えば日本語のような3バイト文字であれば660文字程度、中国語のような4バイト文字であれば500文字程度のデータを設定することができる。なお、この仕様は一例であり、数Kバイト〜数Mバイトといったデータサイズの可変長データ型を設けることも可能である。
図2は、コンピュータ100で動作するアプリケーションプログラム(ツール)が提供する、PLC設定変数の読み込み/書き込み機能の操作画面の一例を示している。例えば、対象とするPLCを指定し同機能を起動すると、図2の操作画面20が表示装置101に表示される。ユーザがボックス21に変数名を入力し、読み込みボタン23を押すと、コンピュータ100がPLC200から当該変数の現在の値を取得し、ボックス22に表示する。図2の上段は、変数「abc」の現在の値「123456」を確認している例を示している。変数の値をPLC200に書き込む場合には、ボックス21に変数名、ボックス22に書き込むデータをそれぞれ入力し、書き込みボタン24を押す。これにより、コンピュータ100から変数の書き込みリクエストがPLC200に送られ、PLC200においてメモリのデータが書き換えられる。図2の下段は、変数「abc」の値を「ABCDEFG」に書き換える例を示している。
本実施形態のコンピュータ100では、CIPが提供するサービスの一つである変数書き込みリクエストを利用して、PLC200への変数の書き込みが行われる。このリクエストのメッセージは、サービスID、クラスID、変数名、オフセット、書き込むデータなどで構成される。「サービスID」と「クラスID」には変数書き込み処理を指定する。そして「変数名」には書き込み対象となる変数の名称を、「オフセット」には当該変数のデータ領域の先頭アドレスから何バイト目にデータを書き込むかを、それぞれ指定する。例えば、変数名「abc」、オフセット「4」、データ「EFG」と指定したリクエストメッセージをPLC200に送信することで、PLC200のメモリ内の変数「abc」のデータ領域の先頭アドレスから4バイトの位置に「EFG」というデータが書き込まれることとなる。
いずれのデータ型の変数でも、基本的にこの変数書き込みリクエストを利用してPLC200のメモリの書き換えが可能である。ただし、STRING型変数の場合は、書き込むデータのサイズが、1つのフレームで伝送可能な最大サイズを超える可能性があるため、データサイズによっては複数回のリクエストに分けて処理を行う。以下、その場合の手順について詳しく説明する。
(STRING型変数の書き換え手順)
図3と図4を参照して、STRING型の変数の書き換え手順について説明する。図3のフローチャートは、複数フレームを使ってデータを送信する場合のコンピュータ100の処理を示している。また図4(A)はPLC200に書き込むデータを示し、(B)はコンピュータ100から送信するフレームとPLC200のメモリの状態を時系列に示している。ここでは、変数「abc」に対し「ABCDEFG」という文字列を設定する手順を例示している。図5の例と同じく、1つのフレームで伝送可能な最大サイズは5バイトと仮定し、PLC200のメモリには変数abcのデータ領域として10バイトが割り当てられており、初期状態では、「123456」という文字列が格納されているものとする。
まず、コンピュータ100は、書き込むべき文字列データのデータ長lと、1つのフレームで伝送可能な最大サイズ(フレーム長)mを取得するとともに(ステップS10)、
オフセットiをlで初期化する(ステップS11)。図4の例では、l=8バイト、m=5バイトであり、iの初期値は8となる。
そして、コンピュータ100は、(実際の文字列データを書き込む前に)PLC200の書き換え対象変数のデータ領域の先頭アドレスに終端コード(null)を書き込む(
ステップS12)。具体的には、図4(B)に示すように、オフセットを「0」、データを「00(null)」とするフレームを生成しPLC200に対し送信する。PLC200では、このリクエストに従って、変数abcのデータ領域の先頭アドレスにnullが書き込まれる。
上記のようにPLC200のデータ領域をnullでリセットした後は、文字列データを最大サイズ以下の複数の分割データに分け、後ろの分割データから順番に書き込みが行われる。具体的には、オフセットiの値をmずつ小さくするように更新し(但し、i<mの場合は、mにiを代入し、iに0を代入する。)(ステップS13)、元の文字列データのiバイト目からmバイト分の分割データをデータ領域の先頭からiバイト目の位置に書き込む(ステップS14)、という処理を全てのデータを書き込むまで繰り返す(ステップS15)。図4(B)の例では、2フレーム目で、「DEFG」の文字コードとnullコードの5バイト分のデータがオフセット「3」の位置に書き込まれ、3フレーム目で、残りの「ABC」の3バイト分の文字コードがオフセット「0」の位置に書き込まれる。
以上述べた書き換え手順によれば、データの書き込みの過渡期間、すなわち、最初にnullを書き込んでから最後の分割データの書き込みが完了するまでのあいだは、データ領域の先頭アドレスにnullが設定された状態が維持される。したがって、もし過渡期間のあいだにPLC200が当該変数を参照したとしても、PLC200は当該変数が空(データが設定されていない)であると認識する。例えば、PLC200の制御プログラムの動作を、「変数が空の場合は、異常と判断し、エラーメッセージを出力する」とか、「変数が空の場合は、デフォルト値を用いて処理を実行する」のように設計しておくことで、PLC200の異常動作(意図しない動作)を防止することができる。
さらに、このような書き換え手順の採用により、従来よりも大きなサイズの変数をPLC側に持たせることができるようになったことで、変数の用途が広がり、PLCの機能拡張を図ることが期待できる。以下、想定される用途をいくつか例示する。
製造物のパッケージに文字列を印字する場合、従来は、画像データ(バイナリデータ)を用いるのが通常であり、製品やロットなどに応じて印字する文字列を変えたいときは、事前に各パターンの画像データを用意しておき、画像のID等を指定して切り換えていた。もし変数の上限サイズが大きくなれば、印字する文字列そのものを変数として扱うことも可能になる。そうすると、外部のコンピュータやHMI(Human Machine Interface)
から印字する文字列を変更、追加できるのでメンテナンスが容易になる。また、フォント、文字色、文字サイズなどの条件を指定するといった拡張も可能となる。
PLCのエラーを外部のコンピュータやHMIに表示する場合、従来は、PLCから取得したエラー番号を基に、コンピュータあるいはHMIの側でエラーメッセージ(警告文や説明文など)を生成するという方法が通常であった。この方法の場合、コンピュータやHMIの各々にエラー番号とエラーメッセージを対応付けた辞書データを持たせておく必要がある。変数の上限サイズが大きくなれば、エラーメッセージそのものを変数としてPLC内に持たせることが可能となる。そうすると、コンピュータやHMIに辞書データが不要となるため、柔軟なシステム設計が可能となる。
PLCに取り付けられたメモリカードに、生産データをテキストファイル形式で保存する場合がある。このとき、形式、ロット番号などの文字列は変数としてPLCに事前に設定される。同様に、メモリカードにエラーログを記録する場合もあり、ログに記述するエラーメッセージ等も変数としてPLCに設定される。その反対として、レシピ情報などのテキストファイルをメモリカードから読み出し、PLCに設定する場合もある。中国語などのマルチバイト文字(4バイト)を取り扱うことを考えると、従来のサイズ(例えば256バイト)は決して充分なサイズとはいえないが、上記実施形態のように数Kバイトの文字列を扱うことができればマルチバイト文字への対応も容易である。
なお、上記実施形態は本発明の一具体例を示したものにすぎず、本発明の範囲をそれらの構成のみに限定する趣旨のものではない。例えば、上記実施形態では、後ろの分割データから順に書き込みを行ったが、少なくとも先頭の分割データの書き込みが最後に行われればよく、先頭以外の分割データの書き込み順は任意である。また上記実施形態では、データ設定装置の一例としてパーソナルコンピュータを例示したが、HMIや他のPLC内のコンピュータをデータ設定装置として機能させることももちろん可能である。
100:コンピュータ
101:表示装置
102:入力装置
200:PLC
300:スレーブ装置

Claims (7)

  1. PLCに設定されている変数をネットワークを介して書き換えるためのデータ設定装置であって、
    書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをPLCに伝送することによって、前記PLCに当該変数の書き換えを行わしめる、データ設定手段を有しており、
    書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが1つのフレームで伝送可能な最大サイズを超えている場合に、
    前記データ設定手段は、
    前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算し、
    最初に、前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記PLCに伝送し、
    次に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記PLCに伝送し、
    最後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記PLCに伝送する
    ことを特徴とするデータ設定装置。
  2. 前記データ設定手段は、前記PLCの稼働中に前記変数の書き換えを行う
    ことを特徴とする請求項1に記載のデータ設定装置。
  3. 前記変数は、nullコードで終端される文字列型の変数である
    ことを特徴とする請求項1または2に記載のデータ設定装置。
  4. 前記ネットワークは産業用ネットワークであり、前記フレームの伝送に用いられるプロトコルはフラグメンテーションの仕組みをもたないプロトコルである
    ことを特徴とする請求項1〜3のうちいずれか1項に記載のデータ設定装置。
  5. PLCに設定されている変数を外部のコンピュータからネットワークを介して書き換えるためのデータ設定方法であって、
    コンピュータが、書き換え対象となる変数、当該変数のデータ領域の先頭アドレスからのオフセット、及び、前記オフセットで指定された位置に書き込むデータを少なくとも指示するフレームを生成し、当該フレームをPLCに伝送することによって、前記PLCに当該変数の書き換えを行わしめる方法であり、
    書き換え対象となる変数が、所定の終端コードで終端される可変長のデータ型の変数であり、かつ、前記変数に書き込むべきデータの全体サイズが1つのフレームで伝送可能な最大サイズを超えている場合に、
    前記コンピュータが、
    前記書き込むべきデータを前記最大サイズ以下の複数の分割データに分割するとともに、各分割データのオフセットを計算するステップと、
    前記データ領域の先頭アドレスに前記所定の終端コードを書き込むことを指示するフレームを前記PLCに伝送する第1書込ステップと、
    前記第1書込ステップの後に、先頭の分割データ以外の分割データのそれぞれについて、前記データ領域の先頭アドレスから対応するオフセットの位置に前記分割データを書き込むことを指示するフレームを前記PLCに伝送する第2書込ステップと、
    前記第2書込ステップの後に、前記データ領域の先頭アドレスに前記先頭の分割データを書き込むことを指示するフレームを前記PLCに伝送する第3書込ステップと、
    を実行することを特徴とするデータ設定方法。
  6. 請求項5に記載のデータ設定方法の各ステップをコンピュータに実行させることを特徴とするプログラム。
  7. 請求項6に記載のプログラムを記憶していることを特徴とするコンピュータ読み取り可能な記憶媒体。
JP2012012460A 2012-01-24 2012-01-24 データ設定装置 Active JP4978757B1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012012460A JP4978757B1 (ja) 2012-01-24 2012-01-24 データ設定装置
EP12866546.0A EP2808748B1 (en) 2012-01-24 2012-03-02 Data setting device
PCT/JP2012/055405 WO2013111351A1 (ja) 2012-01-24 2012-03-02 データ設定装置
CN201280067859.3A CN104067185B (zh) 2012-01-24 2012-03-02 数据设定装置
US14/373,960 US9645567B2 (en) 2012-01-24 2012-03-02 Data setting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012012460A JP4978757B1 (ja) 2012-01-24 2012-01-24 データ設定装置

Publications (2)

Publication Number Publication Date
JP4978757B1 true JP4978757B1 (ja) 2012-07-18
JP2013152570A JP2013152570A (ja) 2013-08-08

Family

ID=46678884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012012460A Active JP4978757B1 (ja) 2012-01-24 2012-01-24 データ設定装置

Country Status (5)

Country Link
US (1) US9645567B2 (ja)
EP (1) EP2808748B1 (ja)
JP (1) JP4978757B1 (ja)
CN (1) CN104067185B (ja)
WO (1) WO2013111351A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114827143B (zh) * 2022-04-11 2023-12-12 广东省离散智造科技创新有限公司 一种离散数据采集方法、系统及云端服务器、边缘计算端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63164548A (ja) * 1986-12-25 1988-07-07 Seiko Instr & Electronics Ltd 伝送装置
JP2010049543A (ja) * 2008-08-22 2010-03-04 Fuji Electric Systems Co Ltd プログラマブルコントローラ、入出力装置、および動作パラメータアクセスシステム
JP2011024156A (ja) * 2009-07-21 2011-02-03 Nec Corp パケット通信装置およびシステム、ならびに同システムにおける受信割り込み制御方法、パケット通信制御プログラム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5522053A (en) * 1988-02-23 1996-05-28 Mitsubishi Denki Kabushiki Kaisha Branch target and next instruction address calculation in a pipeline processor
JP2001024685A (ja) * 1999-07-02 2001-01-26 Canon Inc 情報処理システム、電子機器、及び情報処理方法
JP3557998B2 (ja) * 2000-04-28 2004-08-25 日本電気株式会社 フラグメンテーション処理デバイスおよびこれを用いたフラグメンテーション処理装置
US7725528B1 (en) * 2002-03-06 2010-05-25 Rockwell Automation Technologies, Inc. System and methodology providing optimized data exchange with industrial controller
US7813816B2 (en) * 2004-02-20 2010-10-12 Siemens Industry, Inc. Methods and structures for utilizing a memory device for a PLC
US7620050B2 (en) * 2004-09-10 2009-11-17 Canon Kabushiki Kaisha Communication control device and communication control method
JP2006135871A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd フレーム伝送装置およびフレーム受信装置
KR100728038B1 (ko) * 2006-03-03 2007-06-14 삼성전자주식회사 Plc 네트워크상에서 데이터를 묶어서 전송하는 방법 및장치
FR2926424A1 (fr) * 2008-01-10 2009-07-17 Canon Kk Procede d'acces a un medium dans un reseau de communication synchrone par un noeud emetteur, produit programme d'ordinateur, moyen de stockage et noeud emetteur.
JP2010130118A (ja) * 2008-11-25 2010-06-10 Sony Corp 送信装置、受信装置、通信システム、および、受信装置における処理方法
KR101277368B1 (ko) * 2008-12-25 2013-06-20 미쓰비시덴키 가부시키가이샤 통신 관리 장치, 통신 노드와 통신 시스템 및 데이터 통신 방법
DE112009005506B3 (de) * 2009-06-12 2017-12-28 Mitsubishi Electric Corporation Kommunikationsverwaltungsvorrichtung, Kommunikationsknoten und Datenkommunikationsverfahren
JP5408445B2 (ja) * 2010-03-15 2014-02-05 オムロン株式会社 プログラマブルコントローラおよびマスタ通信回路
EP2466803B1 (de) * 2010-12-15 2013-04-17 Siemens Aktiengesellschaft Verfahren zur Datenübertragung in einem Automatisierungssystem unter Verwendung von Dynamic Frame Packing
EP2466406B1 (de) * 2010-12-15 2016-03-02 Siemens Aktiengesellschaft Verfahren zur automatischen Erzeugung von Dynamic Frame Packgruppen
US8913495B2 (en) * 2011-06-21 2014-12-16 Texas Instruments Incorporated Flow control for powerline communications
US8798090B2 (en) * 2011-09-21 2014-08-05 Nxp B.V. System and method for creating a slot table entry address for a communications device
US10275840B2 (en) * 2011-10-04 2019-04-30 Electro Industries/Gauge Tech Systems and methods for collecting, analyzing, billing, and reporting data from intelligent electronic devices
JP5035480B1 (ja) * 2012-01-27 2012-09-26 オムロン株式会社 データ中継装置、データ送信装置、ネットワークシステム
KR101481296B1 (ko) * 2013-07-18 2015-01-09 엘에스산전 주식회사 원격 단말 장치 및 그의 동작 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63164548A (ja) * 1986-12-25 1988-07-07 Seiko Instr & Electronics Ltd 伝送装置
JP2010049543A (ja) * 2008-08-22 2010-03-04 Fuji Electric Systems Co Ltd プログラマブルコントローラ、入出力装置、および動作パラメータアクセスシステム
JP2011024156A (ja) * 2009-07-21 2011-02-03 Nec Corp パケット通信装置およびシステム、ならびに同システムにおける受信割り込み制御方法、パケット通信制御プログラム

Also Published As

Publication number Publication date
US9645567B2 (en) 2017-05-09
EP2808748A1 (en) 2014-12-03
US20150073569A1 (en) 2015-03-12
CN104067185B (zh) 2016-08-24
CN104067185A (zh) 2014-09-24
WO2013111351A1 (ja) 2013-08-01
EP2808748A4 (en) 2015-08-05
EP2808748B1 (en) 2019-01-09
JP2013152570A (ja) 2013-08-08

Similar Documents

Publication Publication Date Title
US9906628B2 (en) Data relay device, data transmission device, and network system using common routing information for protocol conversion
JP5118836B2 (ja) 工業用制御データを区分するための方法および装置
JP6357770B2 (ja) 制御装置および通信制御方法
TW201918890A (zh) 資料收集裝置、資料收集方法及記錄媒體
JP6626240B2 (ja) コントローラ
JP6477319B2 (ja) プラント制御システム
CN107132808B (zh) 可编程控制器及其控制方法与记录介质
US7313609B1 (en) Method and apparatus for programming an automation device
EP3229439A1 (en) Secure gateway
JP4978757B1 (ja) データ設定装置
JP7017419B2 (ja) プログラマブル・ロジック・コントローラ、データロガーおよび制御方法
TWI484807B (zh) 可程式顯示器
US7779124B2 (en) Active monitoring system and method thereof
US11226611B2 (en) Control device, control method, and control program
JP6064749B2 (ja) コントローラおよびプログラム
CN111654529A (zh) 一种汽相干燥设备远程监控方法及装置
CN104639574A (zh) 数据处理系统及装置
JP7163657B2 (ja) サポート装置、設定方法、および設定プログラム
JP6357769B2 (ja) 制御装置および通信制御方法
WO2016042602A1 (ja) プログラマブルロジックコントローラ
TWI669981B (zh) 基於乙太網路的遠端設備之物件化與控制機制之處理系統與其方法
JP2017017505A (ja) クライアント装置
JP4761081B2 (ja) プログラマブルコントローラ
JP5641217B2 (ja) フィールド機器通信装置
JPH11305810A (ja) プログラマブルコントローラ用のネットワークユニット

Legal Events

Date Code Title Description
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: 20120321

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: 20120403

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4978757

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250