(57)【要約】【課題】ＰＬＣにおいて所望のメッセージを表示可能とすること。【解決手段】記憶装置１２には、プログラム作成支援装置１から転送されてきたラダープログラム７７と、それぞれ異なるメッセージを識別するメッセージ識別情報と１つのメッセージにつきそれぞれ異なる言語で記述されたメッセージデータとを含むメッセージセット７８が記憶される。ラダープログラム実行部７０はラダープログラム７７を実行し、プログラムの実行結果に応じて当該プログラムに関与する複数のデバイスの記憶内容を更新する。表示制御部７１はメッセージ指定デバイス８１に応じてメッセージを特定し、メッセージ言語指定デバイス８０より表示言語を特定し、メッセージを表示部５に表示させる。これにより、ＰＬＣ２においてプログラムの実行結果に応じたメッセージを複数の言語で表示可能となる。【選択図】図１４
2016110219.tif 000002
【特許請求の範囲】
【請求項１】
プログラム作成支援装置上で作成されたユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラであって、
ユーザによって操作される操作手段と、
それぞれ異なる複数のメッセージ識別情報と、該複数のメッセージ識別情報の各々につきメッセージデータが対応付けられたメッセージセットを複数セット記憶する記憶手段と、
前記ユーザプログラムを実行し、当該ユーザプログラムの実行結果に応じて当該ユーザプログラムに関与する複数のデバイスの記憶内容を更新するプログラム実行手段と、
前記複数のデバイスのうち表示すべきメッセージを指定するメッセージ指定デバイスに応じて一つまたは複数のメッセージ識別情報を特定し、特定されたメッセージ識別情報と前記複数セットから一つのセットを指定するためのメッセージセット指定デバイスとに応じて、当該メッセージに対応するメッセージデータを前記記憶手段から読み出して表示部に表示させる表示制御手段と
を有することを特徴とするプログラマブル・ロジック・コントローラ。
【請求項２】
前記プログラマブル・ロジック・コントローラは、ユーザプログラムを周期的に実行する基本ユニットを備え、
前記基本ユニットは、前記操作手段と前記表示部を備え、
前記表示部は、前記操作手段の操作により前記複数のデバイスのデバイス値を表示することを特徴とする請求項１に記載のプログラマブル・ロジック・コントローラ。
【請求項３】
前記表示制御手段は、前記表示部に前記デバイス値が表示された状態で特定のメッセージの表示が指示されたことを契機として、当該特定のメッセージに対応するメッセージデータを前記記憶手段から読み出して前記表示部に表示させることを特徴とする請求項２に記載のプログラマブル・ロジック・コントローラ。
【請求項４】
前記記憶手段は、前記複数のメッセージ識別情報の各々につきそれぞれ異なる言語で記述されたメッセージデータが対応付けられたメッセージセットを複数セット記憶していることを特徴とする請求項１ないし３のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項５】
前記プログラマブル・ロジック・コントローラは、前記ユーザプログラムを実行するランモードと、前記ユーザプログラムを実行しないプログラムモードとを切り替える切替手段を有し、
前記メッセージは、前記プログラマブル・ロジック・コントローラが前記ランモードで動作しているときに、前記ユーザプログラムの実行結果に応じて前記表示部に表示されるメッセージであることを特徴とする請求項１ないし４のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項６】
前記プログラム作成支援装置から転送されてきた言語識別情報に応じて前記メッセージセット指定デバイスである言語指定デバイスの記憶内容を設定する言語設定手段をさらに有することを特徴とする請求項１ないし５のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項７】
前記操作手段の操作内容に応じて前記メッセージセット指定デバイスである言語指定デバイスの記憶内容を設定する言語設定手段をさらに有することを特徴とする請求項１ないし５のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項８】
前記表示制御手段は、前記操作手段によってメニューの表示が指示されると前記表示部にメニューを表示し、
前記言語設定手段は、前記操作手段によってメニューの表示言語の変更が指示されると、前記メニューの表示言語を変更するとともに、前記メッセージの表示言語が前記メニューの表示言語に整合するよう前記言語指定デバイスの記憶内容を変更することを特徴とする請求項７に記載のプログラマブル・ロジック・コントローラ。
【請求項９】
前記表示制御手段は、前記操作手段によってメニューの表示が指示されると前記表示部にメニューを表示し、
前記言語設定手段は、前記操作手段によってメニューの表示言語の変更が指示されると、前記メニューの表示言語を変更するが、前記言語指定デバイスの記憶内容を維持することで、前記メッセージの表示言語を維持することを特徴とする請求項７に記載のプログラマブル・ロジック・コントローラ。
【請求項１０】
前記表示制御手段は、前記操作手段において特定の操作が実行されると、前記メッセージデータに基づき前記表示部に表示されているメッセージを非表示に切り替えることを特徴とする請求項１ないし９のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１１】
前記メッセージの表示と非表示とを管理する表示管理デバイスをさらに有し、
前記プログラム実行手段は、前記操作手段において特定の操作が実行されたことを検知すると、前記表示管理デバイスの記憶内容を、表示を指示する情報から非表示を指示する情報に書き換え、
前記表示制御手段は、前記表示管理デバイスの記憶内容が非表示を指示する情報に書き換えられると、前記表示部に表示されているメッセージを非表示に切り替えることを特徴とする請求項１０に記載のプログラマブル・ロジック・コントローラ。
【請求項１２】
前記表示制御手段は、前記操作手段から入力されるメッセージの切り替え操作に応じて複数のメッセージを切り替えて表示することを特徴とする請求項１ないし１１のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１３】
前記メッセージの切り替え操作は、メッセージのスクロール操作であることを特徴とする請求項１２に記載のプログラマブル・ロジック・コントローラ。
【請求項１４】
前記メッセージデータは、第一言語により表記された複数のメッセージのセットと、第二言語により表記された複数のメッセージのセットとして前記記憶手段に記憶されており、
前記プログラム作成支援装置は、前記第一言語により表記された複数のメッセージのセットがユーザによって入力されると、前記第一言語により表記された複数のメッセージのセットを翻訳して前記第二言語により表記された複数のメッセージのセットを作成することを特徴とする請求項１ないし１３のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１５】
前記プログラム作成支援装置は、前記第一言語により表記された複数のメッセージのセットを一括して前記第二言語により表記された複数のメッセージのセットに翻訳することを特徴とする請求項１４に記載のプログラマブル・ロジック・コントローラ。
【請求項１６】
前記プログラム作成支援装置は、前記第一言語により表記された複数のメッセージのセットのうちユーザによって指定されたメッセージを前記第二言語により表記されたメッセージに翻訳することを特徴とする請求項１４に記載のプログラマブル・ロジック・コントローラ。
【請求項１７】
前記メッセージデータはUnicodeで記述されていることを特徴とする請求項１ないし１６のいずれか１項に記載のプログラマブル・ロジック・コントローラ。
【請求項１８】
プログラム作成支援装置上で作成されたユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラの制御方法であって、
それぞれ異なる複数のメッセージ識別情報と、該複数のメッセージ識別情報の各々につきメッセージデータが対応付けられたメッセージセットを複数セット記憶する工程と、
前記ユーザプログラムを実行し、当該ユーザプログラムの実行結果に応じて当該ユーザプログラムに関与する複数のデバイスの記憶内容を更新する工程と、
前記複数のデバイスのうち表示すべきメッセージを指定するメッセージ指定デバイスに応じて一つまたは複数のメッセージ識別情報を特定し、特定されたメッセージ識別情報と前記複数セットから一つのセットを指定するためのメッセージセット指定デバイスとに応じて、当該メッセージに対応するメッセージデータを記憶手段から読み出して表示部に表示させる工程と
を有することを特徴とする制御方法。
【請求項１９】
請求項１８に記載の制御方法をプログラマブル・ロジック・コントローラに実行させるシステムプログラム。
【請求項２０】
請求項１ないし１７のいずれか１項に記載されたプログラマブル・ロジック・コントローラに接続可能なプログラム作成支援装置であって、
第一言語の単語と第二言語の単語との対応関係を示す辞書を記憶する辞書記憶手段と、
前記第一言語により表記された複数のメッセージのセットの入力を受け付ける受付手段と、
前記第一言語により表記された複数のメッセージのセットがユーザによって入力されると、前記辞書を参照して、前記第一言語により表記された複数のメッセージのセットを前記第二言語により表記された複数のメッセージのセットへ翻訳する翻訳手段と
を有することを特徴とするプログラム作成支援装置。
【請求項２１】
前記翻訳手段は、前記第一言語により表記された複数のメッセージのセットを一括して前記第二言語により表記された複数のメッセージのセットに翻訳することを特徴とする請求項２０に記載のプログラム作成支援装置。
【請求項２２】
前記翻訳手段は、前記第一言語により表記された複数のメッセージのセットのうちユーザによって指定されたメッセージを前記第二言語により表記されたメッセージに翻訳することを特徴とする請求項２０に記載のプログラム作成支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブル・ロジック・コントローラ、その制御方法およびプログラム作成支援装置に関する。
【背景技術】
【０００２】
一般にプログラマブル・ロジック・コントローラ（ＰＬＣ）は発光ダイオード（ＬＥＤ）などのインジケータを備えているにすぎず、画像などを表示する液晶表示装置などを備えてはない。その一方で、ＰＬＣのメンテナンスに必要な情報は、ＰＬＣにパーソナルコンピュータを接続し、パーソナルコンピュータに表示させていた。しかし、ＰＬＣにパーソナルコンピュータを接続するのは面倒な作業であった。特許文献１によれば、ＰＬＣの基本ユニットに表示装置を設け、基本ユニットの設定内容や基本ユニットに連結された拡張ユニットの設定内容を表示することが提案されている。これにより、基本ユニットにパーソナルコンピュータを接続せずに、メンテナンスに役立つ情報が表示装置に表示されるため、ＰＬＣだけでメンテナンス作業を効率よく実施できるようになる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１０８４２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＰＬＣは日本国内だけでなく、外国にも輸出される。そのため、ＰＬＣには仕向地（輸出国）に応じた言語データが搭載されており、その他の言語データは搭載されていない。たとえば、日本向けのＰＬＣであれば日本語データだけが搭載されており、米国向けのＰＬＣであれば英語データだけが搭載されている。しかし、仕向地ごとに区別して言語データを搭載する作業は面倒であった。また、ＰＬＣの在庫管理も複雑となりやすい。また、人材のグローバル化が進むと、１台のＰＬＣを母国語の異なる複数の従業員が管理することも想定される。また、日本企業の中国工場において日本人が設置したＰＬＣを中国人労働者が使用することも考えられる。したがって、１台のＰＬＣであっても複数の表示言語でメッセージを表示できることが市場から望まれている。なお、ＰＬＣはメンテナンスなどを実行するプログラムモードとラダープログラムを実行するランモードとを有しており、プログラムモードではメンテナンスのメニューなどを表示し、ランモードではプログラムの実行結果に応じたメッセージを表示する。とりわけ、ランモードにおいてプログラムを実行中に表示されるメッセージについて複数の言語を切り替えて表示できれば便利であろう。ここでは一例としてあるメッセージについて複数の言語で表示する例を取り上げたが、このような課題は一例に過ぎない。たとえば、ＰＬＣにおいてメッセージを特定し、そのメッセージに対応したメッセージデータを複数のメッセージセットからどのように取得するかといった課題も存在する。たとえば、同一のイベントに対応したメッセージであっても、プログラマー向けのメッセージとＰＬＣを設置する設置担当者向けのメッセージとは異なることがあろう。
【０００５】
そこで、本発明は、ＰＬＣにおいて所望のメッセージが表示可能とすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、たとえば、
プログラム作成支援装置上で作成されたユーザプログラムを繰り返し実行するプログラマブル・ロジック・コントローラであって、
ユーザによって操作される操作手段と、
それぞれ異なる複数のメッセージ識別情報と、該複数のメッセージ識別情報の各々にメッセージデータが対応付けられたメッセージセットを複数セット記憶する記憶手段と、
前記ユーザプログラムを実行し、当該ユーザプログラムの実行結果に応じて当該ユーザプログラムに関与する複数のデバイスの記憶内容を更新するプログラム実行手段と、
前記複数のデバイスのうち表示すべきメッセージを指定するメッセージ指定デバイスに応じて一又は複数のメッセージ識別情報を特定し、特定されたメッセージ識別情報と前記複数セットから１つのセットを指定するためのメッセージセット指定デバイスとに応じて、当該メッセージに対応するメッセージデータを前記記憶手段から読み出して表示部に表示させる表示制御手段と
を有することを特徴とするプログラマブル・ロジック・コントローラを提供する。
【発明の効果】
【０００７】
本発明によれば、ＰＬＣにおいて所望のメッセージが表示可能になる。
【図面の簡単な説明】
【０００８】
【図１】ＰＬＣシステムの一例を示す図
【図２】ユーザプログラムの一例を示す図
【図３】プログラム作成支援装置の一例を示す図
【図４】ＰＬＣの一例を示す図
【図５】スキャンタイムを説明するための図
【図６】ベースレス・ビルディングタイプのＰＬＣの一例を示す図
【図７】基本ユニットの構造を示す図
【図８】基本ユニットの構造を示す図
【図９】基本ユニットの構造を示す図
【図１０】拡張ユニットの構造を示す図
【図１１】拡張ユニットの構造を示す図
【図１２】メニューとメッセージの一例を示す図
【図１３】サブメニューの一例を示す図
【図１４】基本ユニットの機能を示す図
【図１５】プログラム作成支援装置の機能を示す図
【図１６】メッセージセットの一例を示す図
【図１７】メッセージの表示処理を示すフローチャート
【発明を実施するための形態】
【０００９】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念および下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１０】
はじめにプログラマブル・ロジック・コントローラ（ＰＬＣ、単にプログラマブルコントローラと呼ばれてもよい）を当業者にとってよりよく理解できるようにするために、一般的なＰＬＣの構成とその動作について説明する。
【００１１】
図１は、本発明の実施の形態によるプログラマブル・ロジック・コントローラシステムの一構成例を示す概念図である。図１に示すように、このシステムは、ラダープログラムなどのユーザプログラムの編集を行うためのプログラム作成支援装置１と、工場等に設置される各種制御装置を統括的に制御するためのＰＬＣ（プログラマブル・ロジック・コントローラ）２とを備えている。ＰＬＣ２は、ＣＰＵが内蔵された基本ユニット３と１つないし複数の拡張ユニット４を備えている。基本ユニット３に対して１つないし複数の拡張ユニット４が着脱可能となっている。基本ユニット３はＣＰＵユニットと呼ばれることもある。
【００１２】
基本ユニット３には、表示部５及び操作部６が備えられている。表示部５には、基本ユニット３に取り付けられている各拡張ユニット４の動作状況などを表示することができ、表示部５の表示内容は、操作部６を操作することにより切り替えることができる。表示部５には、通常、ＰＬＣ２内のデバイスの現在値（デバイス値）やＰＬＣ２内で生じたエラー情報などが表示される。なお、デバイスとは、デバイス値を格納するために設けられたメモリ上の領域を指す名称であり、デバイスメモリと呼ばれてもよい。デバイス値とは、入力機器からの入力状態、出力機器への出力状態およびユーザプログラム上で設定される内部リレー（補助リレー）、タイマー、カウンタ、データメモリ等の状態を示す情報である。
【００１３】
拡張ユニット４は、ＰＬＣ２の機能を拡張するために用意されており、基本ユニット３に対して側方から取り付けられる。１つ目の拡張ユニット４は、基本ユニット３に対して側方から直接的に取り付けられる。２つ目以降の拡張ユニット４は、既に取り付けられている拡張ユニット４に対して、側方から直列的に取り付けられる。たとえば、基本ユニット３の右側面と拡張ユニット４の左側面とが連結面になっている。同様に、１つ目の拡張ユニット４の右側面の形状等は基本ユニット３の右側面とほぼ同じであるため、１つ目の拡張ユニット４の右側面に２つ目の拡張ユニット４の左側面が連結される。このような連結方式は、数珠つなぎ方式とかデイジーチェーン方式と呼ばれてもよい。各連結面にはコネクタが設けられており、通信や電力供給を行うためのバスもコネクタを介して連結される。このようにして、基本ユニット３と複数の拡張ユニット４が直列的に取り付けられると、各拡張ユニット４内に備えられた配線（例：バス）を介して、各拡張ユニット４が基本ユニット３に対して通信可能に接続される。各拡張ユニット４には、その拡張ユニット４の機能に対応する被制御装置１６（図４）が接続され、これにより、各被制御装置１６が拡張ユニット４を介して基本ユニット３に接続される。被制御装置１６には、センサなどの入力装置や、アクチュエータなどの出力装置が含まれる。
【００１４】
プログラム作成支援装置１は、たとえば、携帯可能ないわゆるノートタイプやタブレットタイプのパーソナルコンピュータであって、表示部７及び操作部８を備えている。ＰＬＣ２を制御するためのユーザプログラムの一例であるラダープログラムは、プログラム作成支援装置１を用いて作成され、その作成されたラダープログラムは、プログラム作成支援装置１内でニモニックコードに変換される。そして、プログラム作成支援装置１を、ＵＳＢ(Universal Serial Bus)などの通信ケーブル９を介してＰＬＣ２の基本ユニット３に接続し、ニモニックコードに変換されたラダープログラムをプログラム作成支援装置１から基本ユニット３に送ると、そのラダープログラムが基本ユニット３内でマシンコードに変換され、基本ユニット３に備えられたメモリ内に記憶される。
【００１５】
なお、図１では示していないが、プログラム作成支援装置１の操作部８には、プログラム作成支援装置１に接続されたマウスなどのポインティングデバイスが含まれていてもよい。また、プログラム作成支援装置１は、ＵＳＢ以外の他の通信ケーブル９を介して、ＰＬＣ２の基本ユニット３に対して着脱可能に接続されるような構成であってもよい。
【００１６】
図２は、ラダープログラムの作成時にプログラム作成支援装置１の表示部７に表示されるラダー図１７の一例を示す図である。図２に示すように、ＰＬＣ２を制御するためのラダープログラムは、プログラム作成支援装置１の表示部７にマトリックス状に表示される複数のセル１８内に仮想デバイスのシンボル１９を適宜配置して、視覚的なリレー回路を表すラダー図１７を構築することにより作成される。
【００１７】
ラダー図１７には、たとえば、１０列×Ｎ行（Ｎは任意の自然数）のセル１８が配置されている。そして、各行のセル１８内に、図２に示す左側から右側に向かって、時系列的に仮想デバイスのシンボル１９を適宜配置することにより、視覚的なリレー回路を作成することができる。作成されるリレー回路は、１行で表される直列的なリレー回路であってもよいし、複数行に並列的に表されたリレー回路を互いに結合することにより作成された、並列的なリレー回路であってもよい。
【００１８】
図２に示すリレー回路は、入力装置からの入力信号に基づいてオン／オフされる３つの仮想デバイス（以下、「入力デバイス」と呼ぶ。）のシンボル１９ａ，１９ｂ，１９ｃと、出力装置の動作を制御するためにオン／オフされる仮想デバイス（以下、「出力デバイス」と呼ぶ。）のシンボル１９ｄとが適宜結合されることにより構成されている。
【００１９】
各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの上方に表示されている文字（「Ｒ０００１」、「Ｒ０００２」及び「Ｒ０００３」）は、その入力デバイスのデバイス名（アドレス名）２１を表している。各入力デバイスのシンボル１９ａ，１９ｂ，１９ｃの下方に表示されている文字（「フラグ１」、「フラグ２」及び「フラグ３」）は、その入力デバイスに対応付けられたデバイスコメント２２を表している。出力デバイスのシンボル１９ｄの上方に表示されている文字（「原点復帰」）は、その出力デバイスの機能を表す文字列からなるラベル２３である。
【００２０】
図２に示す例では、デバイス名「Ｒ０００１」及び「Ｒ０００２」にそれぞれ対応する２つの入力デバイスのシンボル１９ａ，１９ｂが直列的に結合されることにより、ＡＮＤ回路が構成されている。また、これらの２つの入力デバイスのシンボル１９ａ，１９ｂからなるＡＮＤ回路に対して、デバイス名「Ｒ０００３」に対応する入力デバイスのシンボル１９ｃが並列的に結合されることにより、ＯＲ回路が構成されている。すなわち、このリレー回路では、２つのシンボル１９ａ，１９ｂに対応する入力デバイスがいずれもオンした場合、又は、シンボル１９ｃに対応する入力デバイスがオンした場合にのみ、シンボル１９ｄに対応する出力デバイスがオンされるようになっている。
【００２１】
図３は、図１のプログラム作成支援装置１の電気的構成について説明するためのブロック図である。図３に示すように、プログラム作成支援装置１には、ＣＰＵ２４、表示部７、操作部８、記憶装置２５及び通信部２６が備えられている。表示部７、操作部８、記憶装置２５及び通信部２６は、それぞれＣＰＵ２４に対して電気的に接続されている。記憶装置２５は、少なくともＲＡＭを含む構成であり、ラダープログラム記憶部２５ａと、編集ソフト記憶部２５ｂとを備えている。
【００２２】
ユーザは、編集ソフト記憶部２５ｂに記憶されている編集ソフトをＣＰＵ２４に実行させて、操作部８を通じてラダープログラムを編集する。ここで、ラダープログラムの編集には、ラダープログラムの作成及び変更が含まれる。編集ソフトを用いて作成されたラダープログラムは、ラダープログラム記憶部２５ａに記憶される。また、ユーザは、必要に応じてラダープログラム記憶部２５ａに記憶されているラダープログラムを読み出し、そのラダープログラムを、編集ソフトを用いて変更することができる。通信部２６は、通信ケーブル９を介してプログラム作成支援装置１を基本ユニット３に通信可能に接続するためのものである。
【００２３】
図４は、ＰＬＣ２の電気的構成について説明するためのブロック図である。図４に示すように、基本ユニット３には、ＣＰＵ１０、表示部５、操作部６、記憶装置１２及び通信部１４が備えられている。表示部５、操作部６、記憶装置１２、及び通信部１４は、それぞれＣＰＵ１０に電気的に接続されている。記憶装置１２は、ＲＡＭやＲＯＭ、メモリカードなどを含んでもよく、ラダープログラムなどを記憶する。記憶装置１２には、プログラム作成支援装置１から入力されたラダープログラムやユーザデータが上書きして記憶される。また、記憶装置１２には基本ユニット用の制御プログラムも格納されている。
【００２４】
図５は、本発明の実施の形態に係るプログラマブルコントローラの基本ユニット３でのスキャンタイムの構成を示す模式図である。図５が示すように１つのスキャンタイムＴは、入出力のリフレッシュを行うためのユニット間通信２０１、プログラム実行２０２、ＥＮＤ処理２０４により構成されている。ユニット間通信２０１で、基本ユニット３は、ラダープログラムを実行して得られた出力データを基本ユニット３内の記憶装置１２から外部機器などに送信するとともに、受信データを含めた入力データを基本ユニット３内の記憶装置１２に取り込む。たとえば、基本ユニット３のデバイスに記憶されているデバイス値はリフレッシュによって拡張ユニット４のデバイスに反映される。同様に、拡張ユニット４のデバイスに記憶されているデバイス値はリフレッシュによって基本ユニット３のデバイスに反映される。なお、リフレッシュ以外のタイミングでデバイス値をユニット間で更新する仕組みが採用されてもよい。ただし、基本ユニット３のデバイスは基本ユニット３が随時書き換えており、同様に、拡張ユニット４のデバイスは拡張ユニット４が随時書き換えている。つまり、基本ユニット３のデバイスは基本ユニット３の内部の装置によって随時アクセス可能であり、同様に、拡張ユニット４のデバイスは拡張ユニット４の内部の装置によって随時アクセス可能になっている。基本ユニット３と拡張ユニット４との間では基本的にリフレッシュのタイミングにおいて相互にデバイス値を更新して同期する。プログラム実行２０２で、基本ユニット３は、更新された入力データを用いてプログラムを実行（演算）する。基本ユニット３はプログラムの実行によりデータを演算処理する。なお、ＥＮＤ処理とは、プログラム作成支援装置１や基本ユニット３に接続された表示器（図示せず）等の外部機器とのデータ通信、システムのエラーチェック等の周辺サービスに関する処理全般を意味する。
【００２５】
このように、プログラム作成支援装置１はユーザの操作に応じたラダープログラムを作成し、作成したラダープログラムをＰＬＣ２に転送する。ＰＬＣ２は、入出力リフレッシュ、ラダープログラムの実行およびＥＮＤ処理を１サイクル（１スキャン）として、このサイクルを周期的、すなわちサイクリックに繰り返し実行する。これにより、各種入力機器（センサ等）からのタイミング信号に基づいて、各種出力機器（モータ等）を制御する。よって、ＰＬＣ２は汎用のパーソナルコンピュータ（ＰＣ）とは全く異なる動きをする。
【００２６】
＜連結構造＞
図６（Ａ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される前の状態を示している。この例では、基本ユニット３の右方向に１つ以上の拡張ユニット４が連結される。最も右に位置する拡張ユニット４にはエンドユニット１１が連結される。エンドユニット１１は、最も右に位置する拡張ユニット４の右側面を保護するものであり、バスの終端機能を備えていてもよい。なお、拡張ユニット４の前面にはダイレクトアクセススイッチ２７が設けられてもよい。ダイレクトアクセススイッチ２７が操作されると、操作されたことを示す信号が通信バスを介して拡張ユニット４から基本ユニット３に伝達される。基本ユニット３は、この信号を受信することで、拡張ユニット４のダイレクトアクセススイッチ２７が操作されたことを認識し、所定の処理（テスト結果の表示など）を実行する。
【００２７】
図６（Ｂ）はＰＬＣ２を構成する基本ユニット３、拡張ユニット４およびエンドユニット１１が連結された状態を示している。このＰＬＣ２はベースレスのビルディングタイプであるため、ベースを使用せずに、基本ユニット３、拡張ユニット４およびエンドユニット１１が連結される。工場において制御盤に設置しやすくするために、ＰＬＣ２の背面にはＤＩＮレールなどの基準レール１３が取り付けられるようになっている。なお、基本ユニット３および拡張ユニット４の連結状態を維持するためにロック機構が採用されてもよい。
【００２８】
＜基本ユニットの構造＞
図７（Ａ）は基本ユニット３の斜視図である。図７（Ｂ）は基本ユニット３の前面を示す図である。図８（Ａ）は基本ユニット３の右側面を示す図である。図８（Ｂ）は基本ユニット３の底面を示す図である。図９（Ａ）、図９（Ｂ）は基本ユニット３の前面を示す図である。図９（Ｃ）は電池ケース３１を示す図である。
【００２９】
基本ユニット３の前面には上述した表示部５と操作部６に加えて、通信ケーブル等の接続部が設けられえている。接続部には、メモリカードスロットを覆う開閉可能なカバー３０と、ボタン電池などを収容する引き出し可能な電池ケース３１と、ランモードとプログラムモードとを切り替えるスイッチＳＷを覆う開閉可能なカバー３３と、ＵＳＢコネクタ３９を覆う開閉可能なカバー３４と、雌型のモジュラーコネクタ３２とが設けられている。
【００３０】
従来の電池ケースは基本ユニットの底面に設けられており、電池の交換が容易ではなかった。基本ユニット３は一般に工場の制御盤に取り付けられるが、基本ユニット３の底面側には空間的な余裕がほとんどなく、電池の交換が困難であった。一方で、本実施形態の電池ケース３１は基本ユニット３の前面に設けられているため、容易に電池交換が可能となる。
【００３１】
カバー３０の左端とカバー３３、３４の右端にはそれぞれヒンジが設けられている。さらに、電池ケース３１が中央に配置されているため、図８（Ｂ）や図９（Ａ）、図９（Ｂ）が示すように、カバー３０、３３、３４は観音開き式でスムーズに開閉可能である。
【００３２】
図７（Ｂ）、図８（Ａ）および図８（Ｂ）が示すように、基本ユニット３の底面にはいくつかの脚３７が設けられている。脚３７を設けることで底面側に排熱用の空間を確保できるようになる。また、排熱を促すために、底面には複数のスリットが設けられていてもよい。なお、排熱用のスリットは基本ユニット３の上面にも設けられてもよい。煙突効果によって底面から外気を効率よく取り込むとともに、上面から基本ユニット３の内部の空気を効率よく排出することが可能となろう。
【００３３】
図７（Ｂ）が示すように基本ユニット３の前面側の高さ（脚３７を除く）はｈ１である。図８（Ａ）が示すように基本ユニット３の背面側の高さ（脚３７を除く）はｈ２である（ただし、ｈ１＞ｈ２）。図８（Ａ）が示すように、表示部５の分だけ基本ユニット３の前面は背面よりも高くなっている。これにより、表示部５の表示面積を大きくすることが可能となっている。なお、表示部５の高さは、基本ユニット３の前面の高さｈ１の約３分の１となっている。一般にＰＬＣの基本ユニットには表示装置は設けられておらず、精々、ＬＥＤなどのインジケータが設けられる程度であった。それに対して本実施形態では、かなり表示面積の大きなＬＣＤやＯＬＥＤなどの表示装置を採用できるため、メンテナンスなどに関する情報を詳細に表示でき、ユーザのメンテナンス作業をアシストできるであろう。
【００３４】
図７（Ｂ）などが示すように、操作部６には、たとえば、６つのキーが配置されてもよい。左上のキーはメニューを表示させるキーであってもよい。また、右上のキーはエンターキーであってもよい。中央の２つのキーは上下入力キーであり、左下のキーは左入力キーであり、右下のキーは右入力キーであってもよい。ユーザは操作部６におけるこれらのキーを操作することで複数のメッセージをスクロールさせたり、メッセージの表示を解除したり、メニューからサブメニューを呼び出して各種の設定を実行したりしてもよい。
【００３５】
図７（Ａ）や図８（Ａ）が示すように、背面には基準レール１３を取り付けるための取付け部３５が設けられている。これにより、基本ユニット３をＤＩＮレールなどの基準レール１３に固定できるようになる。図８（Ａ）が示すように、右側面には、拡張ユニットの爪部と係合する溝部３６が設けられてもよい。図８（Ａ）によれば、基本ユニット３の上面側に２つの溝部３６が設けられ、底面側にも２つの溝部３６が設けられている。これにより、基本ユニット３と拡張ユニット４とをしっかりと連結して固定できるようになる。
【００３６】
図８（Ａ）が示すように、基本ユニット３の前面はほぼ平面になっており、上面、底面もほぼ平面になっている。これは基本ユニット３のデザイン性を向上させている。また、凹凸が少ないため、前面に接続されたケーブルが凸部に引っ掛かりにくくなっている。
【００３７】
図９（Ａ）が示すように、カバー３０を開くとメモリカードスロット３８が現れる。メモリカードスロット３８に挿入されたメモリカードは記憶装置１２の一部となる。図９（Ｂ）が示すように、カバー３３を開くとスイッチＳＷが現れ、カバー３４を開くと雌型（ソケット側）のＵＳＢコネクタ３９が現れる。ＵＳＢコネクタ３９に接続されたＵＳＢケーブルを通じて基本ユニット３とプログラム作成支援装置１とが接続される。図９（Ｃ）が示すように、電池ケース３１には電池を収納することが可能となっている。この電池によって内部クロックの時刻情報が維持されたり、記憶装置１２に含まれているＲＡＭの記憶情報が保持されたりしてもよい。
【００３８】
＜拡張ユニットの構造＞
図１０（Ａ）は拡張ユニット４の斜視図である。図１０（Ｂ）は拡張ユニット４の前面を示す図である。図１１（Ａ）は基本ユニット３の前面に設けられたインジケータユニットを示す図である。図１１（Ｂ）は拡張ユニット４の右側面を示す図である。拡張ユニット４の種類はさまざまであるが、ここでは拡張ユニット４の一例としてＩ／Ｏユニットについて説明する。
【００３９】
図１０（Ａ）などが示すように、上面にはレバー４０が設けられている。レバー４０は爪部４３を移動させる部材であり、これらは一体成型された部材であってもよい。レバー４０は前面側または後面側にスライドさせることが可能となっており、爪部４３を基本ユニット３の溝部３６または別の拡張ユニット４の右側面に設けられた溝部３６に対してロックさせる。溝部３６は概ねＬ字のような形状をしており、開口面積の広い部分に爪部４３が挿入され、レバー４０により爪部４３を開口面積の狭い部分に移動させることによりロックが実現されている。レバー４０を反対に非ロック方向に移動させることで、爪部４３と溝部３６によるロックが開錠される。なお、底面にもレバー４０を設けることで、底面側のロック機構が実現されてもよい。
【００４０】
拡張ユニット４がＩ／Ｏユニットである場合、前面には、インジケータユニット４１に加え、雌型のコネクタ部４２が設けられる。図１１（Ｂ）が示すように、雌型のコネクタ部４２には雄型のコネクタ４５が接続される。コネクタ４５にはケーブルが接続されており、このケーブルは被制御装置１６であるモータやアクチュエータ、センサなどに接続されている。
【００４１】
図１１（Ａ）が示すように、インジケータユニット４１には、ＬＥＤなどのインジケータ４４とダイレクトアクセススイッチ２７が設けられている。インジケータ４４は、Ｉ／Ｏユニットの入力状態や出力状態を点灯／非点灯により示す。なお、インジケータユニット４１には、透光性を有する部材で形成されたクリアカバーが設けられてもよい。これによりインジケータ４４を保護することが可能となる。
【００４２】
図１１（Ｂ）が示すように底面側のレバー４０の高さ（拡張ユニット４の底面からレバー４０の最高部までの距離）は、脚３７の高さよりも低い。これにより、拡張ユニット４を平板においても、レバー４０が邪魔にならず、拡張ユニット４が安定する。また、図１１（Ｂ）が示すように上面側のレバー４０の高さ（拡張ユニット４の上面からレバー４０の最高部までの距離）は、インジケータユニット４１の高さと同程度からそれよりも低いことが望ましい。これは、拡張ユニット４を制御盤に取り付ける際に、レバー４０が制御盤の他の機器等に触れてしまうことを抑制するためである。なお、図１０（Ｂ）が示すように、多少であれば、インジケータユニット４１の高さよりもレバー４０の高さが高くてもよい。このように、レバー４０の高さとインジケータユニット４１の高さとを同程度することで、拡張ユニット４を狭い空間に取り付けやすくなるとともに、前面側から見た拡張ユニット４のデザイン性も向上しよう。
【００４３】
図１０（Ｂ）が示すように拡張ユニット４の前面側の高さはｈ１である。図１１（Ｂ）が示すように拡張ユニット４の背面側の高さはｈ２である。つまり、これにより基本ユニット３と拡張ユニット４とのデザイン上の一体感を実現している。なお、拡張ユニット４の前面側の高さｈ１が背面側の高さｈ２よりも高いため、インジケータユニット４１の面積を大きくすることが可能となる。これによりインジケータ４４を見やすく配置することが可能となる。また、隣り合ったインジケータ４４との距離を長くすることができるため、インジケータ４４の発熱の相互的な影響を減少させることも可能となる。なお、拡張ユニット４の上面と底面にも排熱用のスリットが設けられていてもよい。図１０（Ａ）や図１１（Ｂ）が示すように、背面には基準レール１３を取り付けるための取付け部３５が設けられている。これにより、基本ユニット３をＤＩＮレールに固定できるようになる。
【００４４】
＜メニュー＞
図１２（Ａ）は基本ユニット３のメニューの一例を示す図である。基本ユニット３の操作部６に設けられたメニューキーをユーザが操作すると、ＣＰＵ１０は表示部５にメニューｍ１を表示する。メニューｍ１はトップメニューであり、メニューｍ１からサブメニューｓｍ１〜ｓｍ４が呼び出される。メニューｍ１でデバイスモードが選択されると、ＣＰＵ１０は表示部５にサブメニューｓｍ１を表示する。サブメニューｓｍ１には、デバイスＲ０、Ｒ１のデバイス値が表示される。メニューｍ１でエラークリアが選択されると、ＣＰＵ１０は表示部５にサブメニューｓｍ２を表示する。サブメニューｓｍ２には、エラーの種別を示すエラー番号とエラー名称などが表示される。メニューｍ１でトリマが選択されると、ＣＰＵ１０は表示部５にサブメニューｓｍ３を表示する。サブメニューｓｍ３には、現在のトリマの設定値と、設定可能な下限値および上限値とが表示される。メニューｍ１でＩ／Ｏテストが選択されると、ＣＰＵ１０は表示部５にサブメニューｓｍ４を表示する。サブメニューｓｍ４には、Ｉ／Ｏテストを開始するために必要となるユーザの動作（ダイレクトアクセススイッチ２７の押し下げなど）を促すメッセージなどが表示される。
【００４５】
メニューｍ２は、トップメニューの２ページ目である。メニューｍ１が表示されている状態で操作部６の上キーまたは下キーが操作されると、ＣＰＵ１０は表示部５にメニューｍ２を表示する。メニューｍ２からサブメニューとしてＣＰＵモニタやコメント番号を設定するためのサブメニュー、メニュー言語を設定するためのサブメニューなどを呼び出すことが可能となっている。ＣＰＵモニタとは、ＣＰＵ機能のバージョンや基本ユニット３の製造番号（シリアル番号）などを表示するサブメニューのことである。コメント番号とは、メッセージの表示言語を示す言語ＩＤのことである。なお、コメント番号によってメニューの表示言語も切り替えられてもよい。ただし、ここではメニューの表示言語が、メニュー言語を設定するためのサブメニューから指定されるようになっている。
【００４６】
図１２（Ｂ）はユーザメッセージの一例を示す図である。ユーザメッセージｍｓｇ１はランモードでＰＬＣ２が動作しているときに、ラダープログラムにしたがって表示されるメッセージである。上述したメニューは一般にプログラムモードで表示されるものであり、ランモードで表示されるメッセージとは区別される。
【００４７】
ここでは、４つのサブメニューが例示されているが、サブメニューの数はこれよりも多くてもよいし、少なくてもよい。さらに、サブメニューからより下位のサブメニューが呼び出し可能であってもよい。
【００４８】
図１３（Ａ）はＣＰＵ機能のバージョンを示すサブメニュー（日本語版）の一例を示している。図１３（Ｂ）はＣＰＵ機能のバージョンを示すサブメニュー（英語版）の一例を示している。これらのサブメニューはメニューｍ２から呼び出され、表示部５に表示される。
【００４９】
図１３（Ｃ）は基本ユニット３の製造番号（シリアル番号）を示すサブメニュー（日本語版）の一例を示している。図１３（Ｂ）は基本ユニット３の製造番号（シリアル番号）を示すサブメニュー（英語版）の一例を示している。これらのサブメニューもメニューｍ２から呼び出され、表示部５に表示される。
【００５０】
図１３（Ｅ）ないし図１３（Ｊ）はメニューｍ１、ｍ２の表示言語を切り替えるためのサブメニューの一例を示している。図１３（Ｅ）、図１３（Ｇ）および図１３（Ｉ）は、表示言語が日本語に設定されているときに表示される、表示言語を変更するためのサブメニューの一例を示している。図１３（Ｆ）、図１３（Ｈ）および図１３（Ｊ）は、表示言語が英語に設定されているときに表示される、表示言語を変更するためのサブメニューの一例を示している。操作部６の上キーまたは下キーを操作することで、表示言語が循環的に、つまり、スクロールして切り替えられる。なお、これらのサブメニューはメニューｍ２から呼び出される。
【００５１】
図１３（Ｋ）はユーザメッセージの表示言語を切り替えるためのサブメニュー（日本語版）の一例を示している。図１３（Ｌ）はユーザメッセージの表示言語を切り替えるためのサブメニュー（英語版）の一例を示している。これらのサブメニューはメニューｍ２から呼び出される。
【００５２】
ＣＰＵ１０は、操作部６からの指示やプログラム作成支援装置１からの指示にしたがってメニューの表示言語とユーザメッセージの表示言語を独立して切り替えてもよいし、連動して切り替えてもよい。少なくとも、図１３（Ｋ）や図１３（Ｌ）に示すサブメニューにおいて上下キーを押し下げることで、少なくともユーザメッセージの表示言語が切り替えられる。このようにメニューの表示言語とユーザメッセージの表示言語とを独立して選択できるようにすることで、基本ユニット３のメンテナンス担当者の母国語と、基本ユニット３の運用者の母国語とが違う環境下でも言語の混乱なく基本ユニット３を使用することが可能となろう。
【００５３】
＜基本ユニットの機能＞
図１４は基本ユニット３のＣＰＵ１０が制御プログラム７６（システムプログラム）を実行することで実現する機能を示している。なお、一部の機能はＡＳＩＣなどの論理回路によって実現されてもよい。図１４では、操作部６と表示部５とを基本ユニット３の本体から着脱可能なオペレーションモジュールとして示しているが、操作部６と表示部５は基本ユニット３の本体に固定されていてもよい。なお、オペレーションモジュールを本体から着脱可能とすることで、狭いところにＰＬＣ２を設置したとしてもＰＬＣ２の操作や表示の確認が可能となる。つまり、オペレーションモジュールを本体から取り外すことで、ユーザは容易に操作を行うことが可能となり、また、容易に表示内容を確認できるようになる。
【００５４】
記憶装置１２には、プログラム作成支援装置１から転送されてきた様々なデータやプログラムが格納される。ラダープログラム７７はユーザプログラムの一種であり、基本ユニット３や拡張ユニット４などを制御するためにＣＰＵ１０によって実行される。メッセージセット７８は、ラダープログラム７７を実行することで表示部５に表示されるメッセージの集合体であり、ここでは複数の言語についてそれぞれメッセージセットが用意されているものとする。フォントデータ７９には、メッセージやメニューを表示部５に表示するためのフォントのデータが含まれている。なお、各文字は、たとえば、Unicodeで記述されていてもよい。Unicodeであれば、複数の言語環境下であっても表示文字とその文字コードとがユニークに割り当てられているため、いわゆる文字化け等が起こりにくい利点がある。メッセージ言語指定デバイス８０は、メッセージの言語を指定する指定情報（例：セットＩＤや言語ＩＤ）をデバイス値として記憶する記憶領域（デバイスメモリ）である。メッセージ指定デバイス８１は、表示部５に表示すべきメッセージの識別情報（例：メッセージＩＤ）をデバイス値として記憶する記憶領域（デバイスメモリ）である。表示管理デバイス８２は、表示部５にメッセージを表示するか、それとも非表示（表示の終了や解除）とするかを示すデバイス値を記憶する記憶領域（デバイスメモリ）である。
【００５５】
ＣＰＵ１０は制御プログラム７６を実行することで様々な手段として機能するが、ここでは代表的なものについて説明する。ラダープログラム実行部７０はラダープログラム７７を実行するユニットである。とりわけ、ＰＬＣ２の制御を高速に実行するために、ラダープログラム実行部７０はＡＳＩＣ等によりＣＰＵ１０の外部に実装されてもよい。スイッチＳＷがランモードに切り替えられたことを検知したモード切替部７５が基本ユニット３の内部状態（動作モード）をランモードに切り替えると、ラダープログラム実行部７０はラダープログラム７７を実行する。また、ラダープログラム実行部７０はラダープログラム７７にしたがってデバイスに格納されているデバイス値を更新して行く。
【００５６】
表示制御部７１は、上述したメニューやメッセージを表示部５に表示させるユニットである。たとえば、表示制御部７１は、メッセージ指定デバイス８１のデバイス値にしたがってメッセージを特定するとともに、メッセージ言語指定デバイス８０によってメッセージ言語を特定し、当該特定された言語による当該メッセージのメッセージデータをメッセージセット７８から取得し、メッセージデータとフォントデータ７９とにより表示データを作成して表示部５に表示データを送出する。これにより、表示部５にはメッセージ指定デバイス８１によって指定されたメッセージが、メッセージ言語指定デバイス８０によって指定された言語によって表示される。表示制御部７１は、表示管理デバイス８２のデバイス値が表示を意味している限り、メッセージを継続して表示部５に表示するが、表示管理デバイス８２のデバイス値が非表示に変更されるとメッセージの表示を解除する。プロジェクト管理部７２は、プログラムモードにおいてプログラム作成支援装置１から転送されてきたプロジェクトデータ（ラダープログラム７７、メッセージセット７８、拡張ユニット４の設定データなど）を記憶装置１２に格納する。
【００５７】
メッセージ言語設定部７３は、操作部６やプログラム作成支援装置１から入力されたメッセージ表示言語の設定指示を受け付け、設定指示に応じてメッセージ言語指定デバイス８０のデバイス値を設定する。たとえば、メッセージ言語設定部７３は、図１３（Ｅ）ないし図１３（Ｌ）に示すようなユーザインタフェースを表示部５に表示し、操作部６の上下キーの押し下げを検知して表示言語を設定する。なお、図１３（Ｋ）や図１３（Ｌ）が示すコメント番号はメッセージの表示言語を示している（なお、コメント番号とセットＩＤや言語ＩＤは一致しているものとする）。たとえば、コメント番号の“コメント１”は日本語を意味し、コメント番号の“コメント２”は英語を意味し、コメント番号の“コメント３”は中国語を意味してもよい。そのため、コメント番号はメッセージ言語やメッセージ表示言語として表示部５に表示されてもよい。メニュー言語設定部７４は、操作部６やプログラム作成支援装置１から入力されたメニュー表示言語の設定指示を受け付け、メニューの表示言語を表示制御部７１に設定する。たとえば、メニュー言語設定部７４は、図１３（Ｅ）ないし図１３（Ｊ）に示すようなユーザインタフェースを表示部５に表示し、操作部６の上下キーの押し下げを検知してメニューの表示言語を設定する。なお、メニュー表示言語を示す言語ＩＤについてもデバイスに記憶されてもよいし、ＥＥＰＲＯＭなどの不揮発性メモリに記憶されてもよい。なお、メニュー言語設定部７４については省略されてもよい。この場合、メッセージ言語設定部７３が設定するコメント番号はメッセージの表示言語とメニューの表示言語との両方を指定する情報として利用されてもよい。このように、メッセージの表示言語とメニューの表示言語とは個別に指定されてもよいし、連動して指定されてもよい。
【００５８】
モード切替部７５は、基本ユニット３の前面に設けられたスイッチＳＷに連動して、基本ユニット３の動作状態をランモードに切り替えたり、プログラムモードに切り替えたりするユニットである。
【００５９】
＜プログラム作成支援装置の機能＞
図１５はプログラム作成支援装置１のＣＰＵ２４が編集ソフトウエア８７を実行することで実現する機能を示している。編集ソフトウエア８７は、ラダープログラム７７、メッセージセット７８および設定データ８８などをユーザが編集するために使用するプログラムである。
【００６０】
ＣＰＵ２４は編集ソフトウエア８７を実行することで様々な手段として機能するが、ここでは代表的なものについて説明する。ラダープログラム作成部８３は表示部７にラダープログラム７７を作成および編集するためのユーザインタフェースを表示し、操作部８から入力される指示にしたがってラダープログラム７７を作成し、記憶装置２５に書き込む。メッセージ作成部８４は、メッセージセット７８を作成するためのユーザインタフェースを表示部７に表示し、操作部８から入力される指示にしたがってメッセージセット７８を作成し、記憶装置２５に書き込む。翻訳部８５は、メッセージ作成部８４によって呼び出され、操作部８から指定されたメッセージ（例：日本語テキスト）を他の言語のメッセージに翻訳する。プロジェクト転送部８６は、ラダープログラム７７、メッセージセット７８および設定データ８８などをプロジェクトデータとしてまとめ、基本ユニット３に転送する。なお、設定データ８８には、基本ユニット３に対する拡張ユニット４の接続位置やラダープログラム７７での識別情報（ユニットＩＤ）が含まれている。なお、設定データ８８には、メッセージを表示するためのデフォルトの言語を示す言語ＩＤが含まれていてもよい。
【００６１】
＜メッセージセットの一例と作成手順＞
図１６（Ａ）ないし図１６（Ｄ）はメッセージセットの一例と作成手順を示している。図１６（Ａ）は第一言語として日本語が予め指定されており、操作部８を通じて１つ目のメッセージが入力された状態を示している。メッセージ作成部８４は入力されたメッセージに関するメッセージデータを、たとえば、Unicodeで表記してもよい。
【００６２】
ここでは、セット１は日本語によるメッセージセットであり、セット２は英語語によるメッセージセットであり、セット３は中国語によるメッセージセットである。セット１〜３はセット識別情報やセットＩＤ、言語ＩＤと呼ばれてもよい。英語圏ではセット１が英語によるメッセージセットとなり、中国語圏ではセット１が中国語によるメッセージセットとなってもよい。メッセージ作成部８４は、操作部８を通じて入力されたメッセージをセット１における１つ目のメッセージとしてメッセージセットを作成する。メッセージ作成部８４は、各メッセージに対して識別情報としてメッセージＩＤを付与して行く。メッセージＩＤは、たとえば、連番で付与される番号であってもよい。図１６（Ｂ）はメッセージごとに翻訳を行う例を示している。メッセージ作成部８４は、第一言語のメッセージが入力された状態で操作部８から翻訳が指示されると、翻訳部８５に当該メッセージの翻訳を指示する。翻訳部８５は、辞書データを参照し、第一言語のメッセージを第二言語や第三言語のメッセージに変換し、メッセージ作成部８４に返す。メッセージ作成部８４は翻訳部８５から受け取った翻訳語をセット２やセット３に入力する。図１６（Ｂ）では日本語のメッセージが英語のメッセージに翻訳された状態を示している。なお、翻訳部８５は、１つのメッセージを複数の言語に変換して複数の言語によるメッセージを返してもよいし、メッセージ作成部８４によって指定された１つの言語のメッセージに変換して返してもよい。たとえば、メッセージ作成部８４や操作部８によって中国語への変換が指定されると、翻訳部８５は、中国語の辞書データを参照して中国語のメッセージに変換して返してもよい。このように翻訳部８５は第一言語によるメッセージを１つずつ他の言語のメッセージに逐次変換してもよい。
【００６３】
図１６（Ｃ）は第一言語による複数のメッセージを連続して入力した様子を示している。１つのメッセージを入力する度に翻訳を実行することはユーザにとって面倒に感じられることがある。そこで、メッセージ作成部８４は、操作部８から入力された第一言語による複数のメッセージを用いて第一言語のメッセージセットを作成する。第一言語による複数のメッセージの入力が完了すると、操作部８からの翻訳指示にしたがって翻訳部８５は第一言語による複数のメッセージをそれぞれ第二言語や第三言語のメッセージへと一括変換してもよい。図１６（Ｄ）は三つの言語による最終的なメッセージセット７８の一例を示している。図１６（Ｄ）が示すように、同一の意味のメッセージには言語に依存せずに固有のメッセージＩＤが付与される。ラダープログラム７７上ではメッセージＩＤを用いて表示すべきメッセージが特定される。また、メッセージＩＤはラダープログラム７７を実行するラダープログラム実行部７０によってメッセージ指定デバイス８１に格納される。同一の意味のメッセージには言語に依存せずに固有のメッセージＩＤを割り当てることで、言語別にラダープログラム７７を用意する必要がなくなり、ラダープログラム７７の作成効率が向上しよう。
【００６４】
＜メッセージの表示に関するフローチャート＞
図１７は基本ユニット３のＣＰＵ１０が実行する主な処理を示すフローチャートである。Ｓ１でＣＰＵ１０（プロジェクト管理部７２）はプログラム作成支援装置１からプロジェクトデータを受信し、記憶装置１２に書き込む。Ｓ２でＣＰＵ１０（モード切替部７５）はスイッチＳＷによって指定されたモードがランモードかどうかを判定する。基本ユニット３の動作モードがランモードに変更されると、Ｓ３に進む。
【００６５】
Ｓ３でＣＰＵ１０（モード切替部７５）はランモードに遷移し、ラダープログラム実行部７０にラダープログラム７７の実行を開始するよう指示する。ラダープログラム実行部７０は開始指示を受信するとラダープログラム７７の実行を開始する。ラダープログラム実行部７０はラダープログラム７７にしたがって様々なデバイスのデバイス値を更新して行く。
【００６６】
Ｓ４でＣＰＵ１０（表示制御部７１）は表示管理デバイス８２のデバイス値がメッセージを表示することを意味するデバイス値になっているかどうかを判定する。表示管理デバイス８２のデバイス値がメッセージを表示することを意味するデバイス値になっていれば、Ｓ５に進む。
【００６７】
Ｓ５でＣＰＵ１０（表示制御部７１）はメッセージ指定デバイス８１を参照し、デバイス値として格納されているメッセージＩＤを取得するとともに、メッセージ言語指定デバイス８０を参照し、デバイス値として格納されているセットＩＤ（言語ＩＤ）を取得し、メッセージＩＤと言語ＩＤとにしたがって表示データを作成する。上述したように、表示制御部７１は、言語ＩＤによってメッセージセット（日本語メッセージセット、英語メッセージセットなど）を特定し、特定したメッセージセットを参照し、メッセージＩＤに対応するメッセージデータ（Unicodeにより記述されたテキストデータ）を読み出し、読み出したメッセージデータをフォントデータ７９により置き換えて表示データを作成する。
【００６８】
Ｓ６で表示制御部７１は表示データにしたがってメッセージを表示部５に表示させる。Ｓ７でＣＰＵ１０（表示制御部７１）は表示管理デバイス８２のデバイス値がメッセージを消去することを意味するデバイス値になっているかどうかを判定する。表示管理デバイス８２のデバイス値は、操作部６からの指示にしたがってラダープログラム実行部７０や表示制御部７１が書き換えてもよい。表示管理デバイス８２のデバイス値がメッセージを消去することを意味するデバイス値に変更されていれば、Ｓ８に進む。Ｓ８でＣＰＵ１０（表示制御部７１）は表示部５にメッセージの表示を終了するよう指示することで、表示部５にメッセージの表示を終了させる。
【００６９】
Ｓ９でＣＰＵ１０（モード切替部７５）はランモードの終了がスイッチＳＷによって指示されたかどうかを判定する。一般にラダープログラム７７は、ランモードの終了がスイッチＳＷによって指示されない限り、周期的に繰り返し実行される。ランモードの終了が指示されていなければ、Ｓ４に戻る。一方で、ランモードの終了が指示されていれば、Ｓ１０に進む。Ｓ１０でＣＰＵ１０（モード切替部７５）は基本ユニット３をプログラムモードに遷移させ、ラダープログラム実行部７０にラダープログラム７７の実行を停止させる。
【００７０】
図１３（Ｋ）などが示すように、たとえばＳ７において操作部６からコメント番号（言語ＩＤ）の変更が指示されると、表示制御部７１はメッセージ言語指定デバイス８０のデバイス値を変更する。通常、メッセージ言語指定デバイス８０のデバイス値はプログラムモードにおいて変更されるが、ランモードにおいて変更されてもよい。この場合、メッセージの言語がランモード中に変更されることになる。たとえば、表示制御部７１は操作部６の上下キーによっていずれか言語の選択を受け付けてもよい。
【００７１】
＜まとめ＞
以上の実施形態ではデバイスを用いて複数の異なる言語によりメッセージを表示する事例について説明した。しかし、上記の実施形態は他の事例に適用可能である。たとえば、ＰＬＣ２においてあるイベントが発生したときにＰＬＣ２はそのイベントに対応したメッセージを表示することになる。しかし、このメッセージの内容はユーザに応じて変更されてもよい。たとえば、ラダープログラムを作成するプログラマーとＰＬＣ２の設置担当者では必要とする情報が異なるため、同一のイベントであっても異なるメッセージとした方が適切であろう。また、習熟したユーザと初心者とではやはりメッセージの内容は異なることが適切であろう。習熟したユーザには専門用語で記述された簡潔なメッセージで十分であろうが、初心者にはよりわかりやすい詳細なメッセージが適切であろう。このようにＰＬＣ２に関しては様々な局面で所望のメッセージが異なる。よって、あるメッセージのメッセージＩＤに対して複数のメッセージデータを対応付けて複数のメッセージセットを記憶装置１２に記憶しておき、メッセージ指定デバイスによってメッセージセットを特定してもよい。メッセージ指定デバイスのデバイス値は、たとえば、操作部６を通じて書き換えられてもよいし、プログラム作成支援装置１を通じて書き換えられてもよい。これにより、プログラマー向けのメッセージセットが選択されたり、設置担当者向けのメッセージセットが選択されたり、初心者向けのメッセージセットが選択されたり、習熟者向けのメッセージセットが選択されたりする。あるいは修理担当者向けのメッセージセットがメッセージ指定デバイスのデバイス値によって指定されてもよい。
【００７２】
このように、記憶装置１２には、それぞれ異なる複数のメッセージ識別情報と、該複数のメッセージ識別情報の各々につきメッセージデータが対応付けられたメッセージセットを複数セット記憶する記憶手段として機能する。ラダープログラム実行部７０はユーザプログラムを実行し、当該ユーザプログラムの実行結果に応じて当該ユーザプログラムに関与する複数のデバイスの記憶内容を更新するプログラム実行手段として機能する。表示制御部７１は複数のデバイスのうち表示すべきメッセージを指定するメッセージ指定デバイスに応じて一つまたは複数のメッセージ識別情報を特定し、特定されたメッセージ識別情報と複数セットから一つのセットを指定するためのメッセージセット指定デバイスとに応じて、当該メッセージに対応するメッセージデータを記憶手段から読み出して表示部に表示させる。なお、上述した多数の実施形態において説明したメッセージ言語指定デバイス８０は、メッセージ指定デバイスに読み替えられるものとする。このように本実施形態によればデバイスを通じて所望のメッセージを表示することが可能となる。
【００７３】
上述したように基本ユニット３は、表示部５と操作部６を備えている。表示部５と操作部６はアクセスウインドウを形成し、基本ユニット３から着脱可能に構成されてもよい。表示部５は操作部６に応じて複数のデバイスのうちのいずれかのデバイスに格納されているデバイス値を表示してもよい。
【００７４】
ランモードやプログラムモードのいずれにおいても操作部６でメニュー表示操作が実行されたことを検知すると、表示制御部７１は表示部５にメニューを表示する。このメニューを通じて所望のデバイスが選択されると、表示制御部７１は、選択されたデバイスのデバイス値を表示部５に表示する。なお、メッセージの表示タイミングは、たとえば、表示部５がメニューを表示している期間であってもよい。つまり、表示制御部７１は、表示部５にデバイス値が表示された状態で特定のメッセージの表示が指示されたことを契機として、当該特定のメッセージに対応するメッセージデータを記憶装置１２から読み出して表示部５に表示させる。特定のメッセージを表示するための契機（トリガー）は、たとえば、ラダープログラムの実行結果に起因したものであってもよいし、基本ユニット３に接続された表示器などの外部機器から表示指令（表示コマンド）を受信したことであってもよいし、基本ユニット３に電源が投入されたことであってもよい。
【００７５】
また、本実施形態によれば、記憶装置１２には、プログラム作成支援装置１から転送されてきたユーザプログラム（例：ラダープログラム７７）と、それぞれ異なるメッセージを識別するメッセージ識別情報（例：メッセージセット７８内のメッセージＩＤ）と、１つのメッセージにつきそれぞれ異なる言語で記述されたメッセージデータ（例：メッセージセット７８内のメッセージデータ）とが記憶されている。たとえば、日本語、英語、中国語、韓国語、フランス語、ドイツ語、スペイン語、ヒンディー語、アラビア語など様々な言語で記述されたメッセージデータがメッセージセット７８として保持されていてもよい。ラダープログラム実行部７０はユーザプログラムを実行し、当該ユーザプログラムの実行結果に応じて当該ユーザプログラムに関与する複数のデバイスの記憶内容を更新する。記憶装置１２には、メッセージの表示に関するデバイスだけでなく、拡張ユニット４を制御するためのデバイスなども存在する。これらのデバイスに記憶されているデバイス値はユーザプログラムを実行することで変更される。表示制御部７１は複数のデバイスのうち表示すべきメッセージを指定するメッセージ指定デバイス８１に応じてメッセージ識別情報を特定し、特定されたメッセージ識別情報と表示言語を指定するための言語指定デバイス（例：メッセージ言語指定デバイス８０）とに応じて当該メッセージのメッセージデータを記憶装置１２から読み出して表示部５に表示させる。これにより、ＰＬＣ２においてプログラムの実行結果に応じたメッセージを複数の言語で表示可能となる。
【００７６】
ＰＬＣ２は、ユーザプログラムを実行するランモードと、ユーザプログラムを実行しないプログラムモードとを切り替える切替手段として、たとえば、スイッチＳＷやモード切替部７５を有していてもよい。メッセージは、ＰＬＣ２がランモードで動作しているときに、ユーザプログラムの実行結果に応じて表示部５に表示されるメッセージであってもよい。上述したようにＰＬＣ２の設置者と運用者とが異なり、かつ、彼らの母国語が異なる場合がある。この場合、基本ユニット３は、ＰＬＣ２の設置時と運用時とでは異なる言語でメニューやメッセージを表示する。これにより、設置者は設置者の母国語でメッセージなどを理解でき、運用者も運用者の母国語でメッセージなどを理解できるようになり、非常に便利であろう。
【００７７】
上述したようにメッセージの表示言語はプログラム作成支援装置１によって設定されてもよい。たとえば、メッセージ言語設定部７３は、プログラム作成支援装置１から転送されてきた言語識別情報（例：設定データ８８に含まれているデフォルトの言語を指定するセットＩＤや言語ＩＤ）に応じて言語指定デバイスの記憶内容を設定してもよい。あるいは、メッセージ言語設定部７３は、操作部６の操作内容に応じて言語指定デバイスの記憶内容を設定してもよい。たとえば、デフォルトの表示言語はプログラム作成支援装置１によって設定され、その後、ＰＬＣ２の運用者であるユーザによって操作部６を通じてメッセージの表示言語が変更されてもよい。
【００７８】
表示制御部７１は、操作部６によってメニューの表示が指示されると表示部５にメニューを表示し、メニュー言語設定部７４は、操作部６によってメニューの表示言語の変更が指示されると、メニューの表示言語を変更する。それとともに、メッセージ言語設定部７３は、メッセージの表示言語がメニューの表示言語に整合するよう言語指定デバイスの記憶内容を変更してもよい。このようにユーザは簡単な操作によってメニューとメッセージとを同一の言語で表示することが可能となる。なお、メニュー言語設定部７４は、操作部６によってメニューの表示言語の変更が指示されるとメニューの表示言語を変更するが、メッセージ言語設定部７３は、言語指定デバイスの記憶内容を維持することでメッセージの表示言語を維持してもよい。これにより、メニューとメッセージとを異なる言語で表示できるようになる。
【００７９】
表示制御部７１は、操作部６において特定の操作が実行されると、メッセージデータに基づき表示部５に表示されているメッセージを非表示に切り替えてもよい。ラダープログラム７７やＣ言語プログラムなどのユーザプログラムを実行しているときに（つまりランモードのときに）表示されるメッセージは、プログラムの実行結果を示すメッセージである。よって、運用者がメッセージを確認したときはそのメッセージを消去し、次のメッセージの表示に備えることが望ましいだろう。そこで、操作部６のエンターキーやメニューキーなど、予め指定されたキーが操作されたことを検知すると、表示制御部７１は表示管理デバイス８２のデバイス値を変更し、メッセージの表示を消去してもよい。これにより、次のメッセージの表示に備えることができる。なお、表示制御部７１は複数のメッセージをロギングデータとして記憶装置１２に格納してもよい。これにより、ランモード中にどのようなメッセージが表示されたかをラダープログラム７７の作成者などが事後的に分析することが可能となろう。
【００８０】
上述したように、ラダープログラム実行部７０は、操作部６において特定の操作が実行されたことを検知すると、表示管理デバイス８２の記憶内容を、表示を指示する情報から非表示を指示する情報に書き換えてもよい。表示制御部７１は、表示管理デバイス８２の記憶内容が非表示を指示する情報に書き換えられると、表示部５に表示されているメッセージを非表示に切り替えてもよい。表示管理デバイス８２などのデバイスはラダープログラム７７からアクセス可能であり、ラダープログラム７７によって制御可能である。よって、ラダープログラム７７の作成者は適宜のメッセージを表示／非表示をラダープログラム７７によって制御してもよい。
【００８１】
表示制御部７１は、操作部６から入力されるメッセージの切り替え操作に応じて複数のメッセージを切り替えて表示してもよい。ラダープログラム７７を実行していると、複数のメッセージがほぼ同時に出現したり、時間的に離れて複数のメッセージが出現したりすることがある。このような場合に複数のメッセージを切り替えて表示できれば、ユーザは、複数のメッセージを把握できて便利であろう。これらのメッセージの切り替え操作は、たとえば、メッセージのスクロール操作であってもよい。たとえば、表示制御部７１は、操作部６の上キーや下キーが操作されると、操作されたキーに応じて複数のメッセージをスクロールしながら表示部５に表示してもよい。
【００８２】
図１６などを用いて説明したように、メッセージデータは、第一言語により表記された複数のメッセージのセットと、第二言語により表記された複数のメッセージのセットとして記憶装置１２に記憶されていてもよい。プログラム作成支援装置１は、第一言語により表記された複数のメッセージのセットがユーザによって入力されると、第一言語により表記された複数のメッセージのセットを翻訳して第二言語により表記された複数のメッセージのセットを作成してもよい。これによりユーザは翻訳手間を省けるようになり、メッセージセットを効率よく作成できるようになろう。
【００８３】
図１６（Ｃ）や図１６（Ｄ）を用いて説明したように、プログラム作成支援装置１は、第一言語により表記された複数のメッセージのセットを一括して第二言語により表記された複数のメッセージのセットに翻訳してもよい。これによりユーザは翻訳の指示を入力する回数を削減できるようになり、メッセージセットを効率よく作成できるようになろう。なお、プログラム作成支援装置１は、第一言語により表記された複数のメッセージのセットのうちユーザによって指定されたメッセージを第二言語により表記されたメッセージに翻訳してもよい。このように指定されたメッセージごとに翻訳作業が実行されてもよい。
【００８４】
メッセージデータはUnicodeで記述されていてもよい。これによりUnicodeであれば容易に複数の言語のメッセージを表記できるようになるため、ユーザにとって便利であろう。
【００８５】
また本実施形態によれば、ＰＬＣ２に接続可能なプログラム作成支援装置１も提供される。記憶装置２５は上述したように辞書データを有している。つまり、記憶装置２５は第一言語の単語と第二言語の単語との対応関係を示す辞書を記憶する辞書記憶手段として機能する。本実施形態では、辞書データは編集ソフトウエア８７に含まれているものとして記載されているが、編集ソフトウエア８７の外部に辞書データが設けられてもよい。操作部８やメッセージ作成部８４は、第一言語により表記された複数のメッセージのセットの入力を受け付ける受付手段として機能する。翻訳部８５は、第一言語により表記された複数のメッセージのセットがユーザによって入力されると、辞書を参照して、第一言語により表記された複数のメッセージのセットを第二言語により表記された複数のメッセージのセットへ翻訳する翻訳手段として機能する。これによりユーザは翻訳の手間を削減でき、メッセージセットを効率よく作成できるようになろう。翻訳部８５は、第一言語により表記された複数のメッセージのセットを一括して第二言語により表記された複数のメッセージのセットに翻訳してもよいし、第一言語により表記された複数のメッセージのセットのうちユーザによって指定されたメッセージを第二言語により表記されたメッセージに翻訳してもよい。いずれの効率が良いかは、メッセージの数やユーザの慣れに依存するだろう。よって、ユーザは自分の嗜好に合わせて翻訳手法を選択してもよい。
【図１】
2016110219.tif 000003
【図２】
2016110219.tif 000004
【図３】
2016110219.tif 000005
【図４】
2016110219.tif 000006
【図５】
2016110219.tif 000007
【図６】
2016110219.tif 000008
【図７】
2016110219.tif 000009
【図８】
2016110219.tif 000010
【図９】
2016110219.tif 000011
【図１０】
2016110219.tif 000012
【図１１】
2016110219.tif 000013
【図１２】
2016110219.tif 000014
【図１３】
2016110219.tif 000015
【図１４】
2016110219.tif 000016
【図１５】
2016110219.tif 000017
【図１６】
2016110219.tif 000018
【図１７】
2016110219.tif 000019