====== MP STUDIO 2 · 7セグメント表示 ====== MP STUDIO 2では、TM1637チップを内蔵した4桁・6桁の7セグメント表示器(FND。以下「7セグ」)に、次の2つの方法で値や文字を表示できます。 * **ボックス方式** — ''FINI''・''FINT''・''FDATA''ファンクションで、ラダーから直接チップに書き込みます。従来のMP STUDIOと同じファンクションです。 * **画面方式**(V1.3.0以降) — **7セグ画面エディタ**で画面をあらかじめ作成しておき、''FSCR''ファンクション1つで表示します。画面に配置した値フィールドは機器のメモリの値に合わせて自動で変わり、変わった桁だけがチップに送られます。 エディタでは、シミュレーション中は仮想の7セグが、モニタリング中は機器がチップに送った文字が、同じガラスに表示されます(V1.3.0以降)。使用できるモジュールの種類(時計型・小数点型)とモジュールの写真は、[[:ja-jp_guide:seven_segment|7セグメントLEDガイド]]で確認してください。 {{ :ja-jp_products:mp_studio:fnd-editor.png?1000 |図1. 7セグ画面エディタ(画面1に固定文字Erとエラーコードの値フィールドを配置した状態) }} ===== 2つの表示方式 ===== {{ :ja-jp_products:mp_studio:fnd-methods.svg?1000 |図2. ボックス方式と画面方式で、ラダー・機器・7セグの間でやり取りされる内容 }} ^ 項目 ^ ボックス方式(FINI・FINT・FDATA) ^ 画面方式(FSCR) ^ | 表示内容を決める場所 | ラダーのファンクションの引数(桁・桁数・小数点) | 7セグ画面エディタ(固定文字・値フィールド) | | チップに書き込むタイミング | ラングの条件がONのスキャンごとに、すべての桁を書き直します。 | 変わった桁だけを、1スキャンに1桁ずつ送ります。約1秒ごとに、すべての桁と明るさを送り直します。 | | ラングがOFFのとき | 何も送らないため、チップは最後の文字をそのまま表示します。 | 最後の画面を表示したまま、値フィールドは引き続き更新されます。 | | 表示できる値 | 10進の整数(下位4桁)・セグメント値 | 10進(符号・小数点)・16進・ビット文言・固定文字 | | 桁数を超える値 | 下位の桁だけが表示されます(''12345'' → ''2345'')。 | 値フィールド全体がバーで表示され、切れた数値は表示されません。 | | 6桁モジュール | チップアドレスの順にしか書き込めません。 | **桁の順序**で、見える桁とチップアドレスを対応させます。 | | 明るさ | 7(最大)に固定 | 表示ごとに0~7 | | 7セグの応答(ACK) | 読みません。モジュールがなくてもエラーになりません。 | 機種によっては読み取り、''FSCR''の出力とエディタの**応答なし**で知らせます。 | 1台の7セグには、どちらか一方の方式しか使えません。同じ7セグにボックス方式のファンクションと''FSCR''を併用すると、ボックス方式のセルが赤く表示され、コンパイルされません([[#チェックと警告|チェックと警告]]を参照)。 ===== 対応製品と接続 ===== 7セグを接続する端子と、''FINI''のCLK・DIO引数に入力する値は機種によって異なります。端子の位置とコネクタの図は、表の製品ページで確認してください。 ^ 機種 ^ 7セグの端子 ^ FINIのCLK・DIO / エディタのピン ^ 接続できる7セグ ^ 同時に使用できない機能 ^ | ''MPS-8A4R(T)-S'' · ''MPS-8A8R(T)-S'' · ''MPS-16A16R(T)'' | **FND / ENCO**コネクタのCLK(A)・DIO(B) — [[:ja-jp_products:mps_8a4r_s|MPS-8A4R-S]] · [[:ja-jp_products:mps_8a4t_s|MPS-8A4T-S]] · [[:ja-jp_products:mps_8a8r_s|MPS-8A8R-S]] · [[:ja-jp_products:mps_8a8t_s|MPS-8A8T-S]] · [[:ja-jp_products:mps_16a16r|MPS-16A16R]] | 端子は固定です。''FINI''には''0''・''1''だけを入力でき、値は使われません。 | 1台 | 同じコネクタの高速入力0チャンネル(エンコーダ) | | MPAシリーズ | **UART**(チャンネル3)端子 — CLKは**RXD**、DIOは**TXD**に接続 — [[:ja-jp_products:mpa|MPA Series]] | 端子は固定です。''FINI''の引数の値は使われません。 | 1台 | シリアル3通信 | | ''MPS-8A8R'' | **PWM出力** PWM0~PWM5端子 — [[:ja-jp_products:mps_8a8r|MPS-8A8R]] | PWM端子の番号''0''~''5''(''0'' = PWM0) | CLK・DIOの組ごとに1台(最大3台) | 同じ端子のPWM出力 | | ''MPS-16A8R8T'' | **PWM出力** PWM0・PWM1・PWM3・PWM4端子 — [[:ja-jp_products:mps_16a8r8t|MPS-16A8R8T]] | PWM端子の番号''0''・''1''・''3''・''4'' | CLK・DIOの組ごとに1台(最大2台) | 同じ端子のPWM出力 | | ''MPS-16A8R(T)'' | **アナログ入力** AI0~AI3端子 — [[:ja-jp_products:mps_16a8r|MPS-16A8R]] | AI端子の番号''0''~''3''(''0'' = AI0) | ボックス方式は1台 · 画面方式はピンが重ならないように2台 | 同じ端子のアナログ入力 | | ''MPS-16A8R(T)-R2'' | 7セグは使用できません。 | — | — | — | ''MPS-16A8R(T)''の7セグは、V1.3.0以降で表示されます(それより前のバージョンでは、機器から7セグの信号が出力されていませんでした)。 * ボックス方式の場合、''MPS-8A8R''・''MPS-16A8R8T''では、実行した''FINI''のCLK・DIOごとに別々の7セグとして扱われ、''FINT''・''FDATA''は最後に実行した''FINI''の7セグに書き込みます。''MPS-16A8R(T)''では、プログラム内で最後に配置された''FINI''のピン1組だけが使われます。 * MPAシリーズでは、''FINI''が実行されるとシリアル3の通信がオフになり、機器を再起動するまでシリアル3で送受信できなくなります。 * 7セグモジュールのVCC・GND・CLK・DIOは、製品ページのコネクタの図に従って接続してください。 * ''MPS-8A4T-S''の標準品は、FND / ENCOコネクタに4.7kΩのプルダウン抵抗があるため、7セグが正常に動作しません。7セグを使用するには、ご注文時に「7セグメント制御」オプションを選択する必要があります([[:ja-jp_products:mps_8a4t_s|MPS-8A4T-S]]を参照)。 ===== ボックス方式(FINI・FINT・FDATA) ===== ボックス方式では、ファンクションパネルの**7Segment**分類にある''FINI''・''FINT''・''FDATA''で、7セグに直接書き込みます。ファンクションを含むラングの条件がONのスキャンごとにチップに書き込み、OFFのときは何も送りません。チップは受け取った文字を保持しているため、ラングがOFFになっても最後の文字が表示され続けます。 ^ ファンクション ^ 引数 ^ 動作 ^ | ''FINI'' | CLK, DIO | 7セグを点灯させ(明るさ7)、1~4桁目を消去します。5・6桁目は消去しません。 | | ''FINT'' | IN, POSITION, LENGTH, DOT, ZERO, SIGN | 整数を10進で表示します。 | | ''FDATA'' | DATA, POSITION | 1バイトのセグメント値を、そのまま1つの桁に表示します。 | ''FINT''・''FDATA''が正常に実行されると、ファンクションの右側へ信号が伝わります。引数に誤りがあって表示できない場合は、右側の信号が切れます。 {{ :ja-jp_products:mp_studio:fnd-box-rungs.png?1000 |図3. FINIで7セグを点灯させ、FINTでD0を、FDATAで固定文字を表示するラング }} ==== FINI ==== * ''MPS-8A4R(T)-S''・''MPS-8A8R(T)-S''・''MPS-16A16R(T)''では、プログラムに''FINT''または''FDATA''があれば、機器の起動時に7セグが自動で点灯するため、''FINI''は不要です。 * その他の機種では、''FINI''が実行されないと7セグが点灯しません。''FINI''がない場合は、''FINT''・''FDATA''のセルにオレンジ色の警告が表示されます。 * ''FINI''は、実行されるたびに1~4桁目を消去します。ラングが常にONだと、スキャンごとに消去しては書き直すことになるため、''FINI''は必要なときに1回だけ実行されるよう、立ち上がりエッジなどを使って構成してください。 ==== 桁番号とチップアドレス ==== POSITION(POS)は、チップアドレスに1を足した番号です。4桁モジュールは通常、左の桁からチップアドレス0~3の順に並んでいるため、POS 1が左端、POS 4が右端になります。6桁モジュールは製品によって桁とチップアドレスの順序が異なるため、ボックス方式では、目的の桁に文字が表示されるかを確認してください。 {{ :ja-jp_products:mp_studio:fnd-pos-address.svg?900 |図4. ボックス方式のPOS番号とチップアドレス }} ==== FINT ==== ^ 引数 ^ 入力する値 ^ 説明 ^ | IN | バイト・ワード・ダブルワードのアドレスまたは定数 | 表示する値です。下位4桁だけが表示されます。 | | POSITION | 1~6 | 1の位を書き込むPOSです。十・百・千の位は、その左側に続きます。 | | LENGTH | 1~4 | 表示する桁数です。0の場合は何も表示しません。 | | DOT | 0~4 | 小数点を付ける位置です。4桁の枠の左から数えて1~4桁目の後ろに小数点が付き(4 = 1の位)、0の場合は小数点を付けません。POSITION・LENGTHとは関係ありません。 | | ZERO | ''TRUE''・''FALSE''またはビットアドレス | ONにすると、空いている先頭の桁を0で埋めます。OFFにすると、先頭の桁の0を空白にします。 | | SIGN | ''TRUE''・''FALSE''またはビットアドレス | ONにすると、値を符号付きの数として読み、数字の左の1桁に、負の数なら''-''を、正の数なら空白を書き込みます。 | {{ :ja-jp_products:mp_studio:fnd-fint-options.svg?1000 |図5. FINTの引数による4桁モジュールの表示 }} * SIGNをOFFにすると、負の数は符号なしの数として表示されます。たとえば、バイトの''-5''は''251''と表示されます。 * SIGNをONにすると、数字の左に符号用の桁がもう1つ必要になります。符号を使うには、POSITIONがLENGTHより大きくなければなりません。 * 値が表示する桁数より長い場合は、下位の桁だけが表示されます(LENGTH 4で''12345'' → ''2345'')。 * ダブルワードの値と、SIGNをONにしたときの負の数は、V1.3.0以降で正しく表示されます。 ==== FDATA ==== DATAの下位バイトを、POSITION(1~4)の桁にそのまま書き込みます。ビット0~6がセグメントa~g、ビット7が小数点に対応します。数字・英字以外の形を表示したり、複数のセグメントを直接点灯・消灯させたりするときに使用します。 {{ :ja-jp_products:mp_studio:fnd-seg-bits.svg?700 |図6. セグメントの名前とDATAのビット }} ^ 文字 ^ 0 ^ 1 ^ 2 ^ 3 ^ 4 ^ 5 ^ 6 ^ 7 ^ 8 ^ 9 ^ - ^ 空白 ^ | DATA | ''16#3F'' | ''16#06'' | ''16#5B'' | ''16#4F'' | ''16#66'' | ''16#6D'' | ''16#7D'' | ''16#07'' | ''16#7F'' | ''16#6F'' | ''16#40'' | ''16#00'' | DATAは、''16#3F''(16進)・''63''(10進)・''2#00111111''(2進)のどの形式でも入力できます。その他の文字の値は、7セグ画面エディタの[[#文字表と値の作成|文字表]]で作成できます。小数点も一緒に点灯させるには、''16#80''を足した値を入力してください(例: ''1.'' = ''16#86'')。 ===== 7セグ画面エディタ ===== 7セグ画面エディタは、7セグに表示する画面を、実際のモジュールに似せたガラスの上で作成するウィンドウです(V1.3.0以降)。作成した画面は、ラダーの''FSCR''ファンクションで表示します。 ==== エディタを開く ==== * **設定 → 7セグ画面エディタ**を選択します。 * ラダーの''FSCR''のセルで''Enter''を押すかダブルクリックすると、その表示と画面を開いた状態でエディタが開きます。 * ''FSCR''の引数のセルを修正するときに、入力欄の下にある**画面エディタを開く**を押します。 * 7セグ表示が1つもないときに''FSCR''を挿入すると、表示1が作成され、エディタが自動で開きます。 * ''FINI''・''FINT''・''FDATA''のセルを右クリックして**7セグ表示を見る**を選択すると、エディタが開き、現在7セグに表示されている内容にガラスが追従します。 {{ :ja-jp_products:mp_studio:fnd-cell-menu.png?400 |図7. FINTのセルの右クリックメニューにある「7セグ表示を見る」 }} エディタにはOK・キャンセルボタンがありません。変更した内容はすぐにプロジェクトに反映され、''Ctrl+Z''・''Ctrl+Y''で元に戻したり、やり直したりできます。ファイルに残すには、プロジェクトを保存(''Ctrl+S'')してください。エディタを開いたままラダーを編集でき、ウィンドウは✕または''Esc''で閉じます。 ==== 画面構成 ==== {{ :ja-jp_products:mp_studio:fnd-editor-marked.svg?1000 |図8. 7セグ画面エディタの構成 }} * **① 状態チップ:** シミュレーション・モニタリング中に、ガラスが何を表示しているかを示します(**シミュレーション · 実行中 · 画面 N**、**機器の表示 · 画面 N**)。 * **② LED の色・7 セグのみ表示:** エディタのガラスのLEDの色(赤・緑・青・琥珀色・白)を選べます。色はこのPCにだけ保存され、機器には関係ありません。**7 セグのみ表示**を押すと、ウィンドウが小さくなります。 * **③ 7セグ表示の一覧:** 7セグ表示を追加・選択する場所です。 * **④ 表示のプロパティ:** 選択した表示の番号・桁数・桁の順序・ピン・明るさ・見た目です。 * **⑤ 画面一覧:** 選択した表示の画面です。 * **⑥ 画面番号・値フィールドを追加:** 選択した画面の番号を変更したり、ガラスで選んだ桁に値フィールドを置いたりします。 * **⑦ 帯:** 値フィールドが色付きのバーで表示されます。バーをドラッグして移動し、右端をドラッグして幅を変更できます。 * **⑧ ガラス:** 機器が描く文字が表示されます。ガラスの下には、桁番号とチップアドレスが並べて表示されます。 * **⑨ この画面の値フィールド:** 画面にある値フィールドの一覧と、スキャンあたりのコストです。 * **⑩ 右側のタブ:** **値フィールド**(選択した値フィールドのプロパティ)・**セグペイント**(選択した桁の固定セグメント)・**文字表**(セグメント値の作成)の3つです。 * **⑪ 問題一覧:** 7セグ画面の定義に問題がある場合に、その内容を一覧で表示します。 ==== 7セグ表示の追加 ==== - 左側の**7セグ表示**の**+**(または初期画面の**7 セグ表示を追加**)を押します。空いている最小の番号、4桁、桁の順序''0,1,2,3''、明るさ7、画面0で表示が作成されます。 - 下の表のプロパティを、7セグモジュールと配線に合わせて設定します。 {{ :ja-jp_products:mp_studio:fnd-display-props-marked.svg?420 |図9. 表示のプロパティ }} ^ プロパティ ^ 説明 ^ | ① 表示番号 | 1~8。''FSCR''のDSPに入力する番号です。表示は8個まで作成できます。 | | ② 桁数 | **4 桁**または**6 桁** | | ③ 桁の順序 | 見える桁(左から)ごとに、対応するチップアドレスを並べたものです。''0,1,2,3''・''0,1,2,3,4,5''・**2,1,0,5,4,3 · よくある 6 桁モジュール**から選ぶか、**直接入力**を選んで**チップアドレス**に0~5をカンマ区切りで入力します。 | | ④ ピン | ''MPS-8A8R''・''MPS-16A8R8T''・''MPS-16A8R(T)''で、CLK・DIOの番号を入力する欄です。下に**使えるピン**が表示されます。端子が固定の機種では、**この機種は 7 セグのピンが決まっているため、表示は 1 台だけ付けられます。**と表示されます。 | | ⑤ 明るさ | 0~7(7が最も明るい) | | ⑥ 見た目 | **点**または**コロン**。**コロン**を選ぶと、時計型モジュールのように、2桁目の小数点を2つの桁の間のコロンとして描きます。機器に送る値は同じで、エディタとシミュレーションでの見た目だけが変わります。 | **この 7 セグ表示を外す**を押すと、選択した表示が削除されます。表示の一覧の各項目には、桁数と画面数も表示されます。 6桁モジュールで文字の並びが入れ替わって表示される場合は、桁の順序がモジュールと合っていません。よく使われる6桁モジュールは、チップアドレスが''2,1,0,5,4,3''の順に配線されています。桁の順序は、エディタのガラスの下に**チップ N**として表示されます。 {{ :ja-jp_products:mp_studio:fnd-order-6digit.svg?900 |図10. 桁の順序が2,1,0,5,4,3の6桁モジュールの、見える桁とチップアドレス }} ==== 画面一覧 ==== 1つの表示に複数の画面を作成できます。**画面一覧**の**+**は画面の追加、**⧉**は複製、**−**は削除です。画面は番号(0~255)で区別し、選択した画面の番号はガラスの上の**画面番号**で変更できます。画面は1つの表示につき255個まで作成できます。''PgUp''・''PgDn''で前後の画面に切り替わります。 {{ :ja-jp_products:mp_studio:fnd-screen-list.png?420 |図11. 画面が2つある画面一覧 }} 一覧の小さなガラスには、各画面がプレビュー値で表示されます。シミュレーション・モニタリング中に7セグに表示されている画面は、番号が緑色で表示されます。 ==== 固定文字の入力 ==== ガラスの桁をクリックして文字を入力すると、その桁に固定文字(固定セグメント)が入り、カーソルが右へ移動します。 * 使える文字は、''0''~''9''、''A b C c d E F G H h I J L n o P q r S t U u y''、''-'' ''_'' ''°'' ''=''、空白です。大文字・小文字のどちらか一方しか描けない文字は、描けるほうの形で入ります(''a'' → ''A''、''O'' → ''0'')。 * ''.''を入力すると、前の文字の小数点のオン・オフが切り替わります。 * ''Backspace''・''Delete''で削除し、''←''・''→''・''Home''・''End''で桁を移動します。 * 7セグで描けない文字(''K''・''M''・''V''・''W''・''X''・''Z''・ハングルなど)は入力されず、その理由がガラスの下に表示されます。このような形は、**セグペイント**タブでセグメントを1つずつクリックして描いてください。 **セグペイント**タブでは、選択した桁の固定セグメントをセグメント単位で修正します。 {{ :ja-jp_products:mp_studio:fnd-digit-painter-marked.svg?420 |図12. セグペイントタブ }} * **① 桁 N の固定セグメント:** 選択した桁と、その現在の値(16進)です。 * **② セグメント:** クリックすると、そのセグメントが点灯・消灯します。 * **③ クイック文字:** クリックすると、その文字の形になります。**点**は小数点を点灯・消灯し、**クリア**は桁を空にします。 値フィールドがある桁には、固定文字を入力できません。この場合、固定セグメントの小数点だけが値に重ねて点灯します。時計型モジュールのコロンや固定の小数点を、値フィールドと一緒に点灯させたいときに使います。 ==== 値フィールド ==== 値フィールドは、機器のメモリの値を表示する位置です。 - ガラスで、値を表示し始める桁をクリックします。 - 上部の**値フィールドを追加**で、**10 進**・**16 進**・**ビット文言**のいずれかを押します。選択した桁から既定の幅(10進は4桁・16進は2桁・ビット文言は3桁。残りの桁が少ない場合はその桁数)で値フィールドが置かれます。''Ctrl+Enter''を押すと、10進の値フィールドが置かれます。 - 右側の**値フィールド**タブの**ソース**に、アドレスまたはシンボルを入力します。**10 進**・**16 進**ではバイト・ワード・ダブルワードのアドレス(例: ''D10''・''DD20'')、**ビット文言**ではビットアドレス(例: ''M5'')を使います。 - 必要なオプションを設定します。 {{ :ja-jp_products:mp_studio:fnd-field-props-marked.svg?420 |図13. 10進の値フィールドのプロパティ }} ^ プロパティ ^ 説明 ^ | ① 表示形式 | **10 進**・**16 進**・**ビット文言**を切り替えます。 | | ② ソース | 表示するアドレスまたはシンボルです。シンボル名を入力すると、一覧から選べます。 | | ③ 開始桁・幅 | 値フィールドの最初の桁(1 = 左端)と桁数です。 | | ④ 符号(負の数は幅の中に -) | 10進用。値を符号付きの数として読み、負の数の場合は幅の中の1桁に''-''を書き込みます。幅は2桁以上必要です。 | | ⑤ 先頭の桁を 0 で埋める | 10進・16進用。値が幅より短い場合、前を0で埋めます。16進では最初からオンになっています。 | | ⑥ 小数桁 | 10進用。右から数えてこの桁数の位置に小数点を付けます(値''1234''、小数桁2 → ''12.34'')。小数点の付く桁とその右の桁は、値が0でも表示されます(値''5'' → ''0.05'')。 | | オンの文字・オフの文字 | ビット文言用。ビットがON・OFFのときに表示する文字です。既定は''On''・''OFF''の形で、文字の欄には''0n''・''0FF''と表示されます(7セグでは''O''と''0''が同じ形になるため)。右側の欄に、セグメント値を16進で入力することもできます。 | | ⑦ プレビュー値 | エディタのガラスに試しに描く値です。プロジェクトには保存されず、機器には関係ありません。 | {{ :ja-jp_products:mp_studio:fnd-field-examples.svg?1000 |図14. 値フィールドの種類・オプションによる4桁モジュールの表示 }} * 値が幅に収まらない場合は、値フィールド全体が上バー(‾)で表示されます。符号付きの10進で負の数があふれた場合は、下バー(_)で表示されます。プレビュー値があふれた場合は、**値フィールド**タブに**あふれ — 幅全体が上バーで表示されます(切れた数は表示しません)**と表示されます。 * 16進は、''0''~''9''・''A b C d E F''で表示されます。 * 値フィールドは、帯のバーをドラッグして移動し、右端をドラッグして幅を変更できます。キーボードでは、''Alt+←→''で移動、''Alt+Shift+←→''で幅の調整ができます。 * 値フィールドを削除するには、**この値フィールドを外す**を押すか、値フィールドを選択して''Delete''を押してください。 ガラスの下の**この画面の値フィールド**には、画面にある値フィールドが、種類・ソース・桁・幅とともに一覧表示されます。行をクリックすると、その値フィールドが選択されます。最下行の**スキャンあたり最大 ≈ 60 µs · 画面が全部変わると N スキャン**は、画面方式によって1スキャンあたりに増える最大の時間と、画面のすべての桁が変わったときに表示し終えるまでのスキャン数です。表示が2つ以上ある場合は、表示ごとに順番に送るため、その分スキャン数が増えます。 ==== 文字表と値の作成 ==== **文字表**タブは、セグメントをクリックして、7セグ1桁分の形の値を作るツールです。編集中の画面は変わりません。作った値は、下のボタンで入れる先を選んで入れます。 {{ :ja-jp_products:mp_studio:fnd-chars-tab-marked.svg?420 |図15. 文字表タブ }} * **① ガラスの桁 N の文字を取り込む:** ガラスで選択した桁の形を取り込みます。シミュレーション・モニタリング中は、ガラスに表示されている実際の文字を取り込みます。 * **② ペイント:** クリックすると、そのセグメントが点灯・消灯します。 * **③ 値:** 作った形の**16 進**(''16#3F''の形式)・**10 進**・**2 進**の値です。⧉ボタンでコピーできます。 * **④ ビット:** ビット7(小数点)~0(a)を1つずつオン・オフできます。 * **⑤ クイック文字:** クリックすると、その文字の形になります。文字キーを押して直接選ぶこともできます(''.'' 小数点 · ''Del'' クリア · ''Ctrl+C'' 16進をコピー)。 * **⑥ セルに入れる:** ラダーで''FDATA''のDATAのセルを選択した状態で押すと、そのセルに16進の値が入ります。**ペイントに読み込む**を押すと、そのセルの現在の値がペイントに読み込まれます。 * **⑦ 固定セグメントとして入れる:** ガラスで選択した桁に、固定セグメントとして入れます。 ''Ctrl+Enter''を押すと、''FDATA''のDATAのセルが選択されている場合はそのセルに、選択されていない場合は選択した桁の固定セグメントとして入れます。入れた内容は''Ctrl+Z''で元に戻せます。 ==== 7セグのみ表示 ==== ウィンドウ上部の**7 セグのみ表示**を押すと、エディタがガラスだけの小さなウィンドウに切り替わります。ラダーを見ながら、シミュレーション・モニタリング中の7セグを確認するときに便利です。**全体を表示**を押すと、元のウィンドウに戻ります。 {{ :ja-jp_products:mp_studio:fnd-compact.png?600 |図16. 7セグのみ表示 }} ===== ラダーでの画面表示(FSCR) ===== 画面は''FSCR''ファンクションで表示します(V1.3.0以降)。ファンクションパネルの**7Segment**分類にある**FSCR: Show Screen**を選ぶか、ファンクションの挿入ウィンドウ(''Ctrl+E'')に''FSCR 1 0''のように入力して挿入します。 ^ 引数 ^ 説明 ^ | DSP | 7セグの表示番号(1~8)です。定数だけを使えます。 | | PAGE | 表示する画面番号(0~255)です。定数またはワードアドレスを使えます。 | {{ :ja-jp_products:mp_studio:fnd-fscr-param.png?600 |図17. FSCRのPAGEのセルを修正するときに表示される画面の選択リスト }} * ラングの条件がONの間、その画面を表示します。条件がOFFになっても最後の画面が残り、値フィールドは引き続き更新されます。パルスで呼び出す必要はなく、''FINI''も不要です。 * ''FSCR''の出力は、画面が画面一覧にあり、7セグが応答するとONになります。''MPS-8A8R''・''MPS-16A8R8T''は7セグの応答を読まないため、画面があればONになります。 * PAGEにワードアドレス(例: ''D20'')を使うと、その値を変えて画面を切り替えられます。画面一覧にない番号の場合は、最後の画面がそのまま表示され、出力はOFFになります。 * 同じスキャンで、同じ表示の''FSCR''が2つ以上ONになっている場合は、後にある''FSCR''が選んだ画面が表示されます。 * ''FSCR''を挿入すると、DSPとPAGEに最初の表示と最初の画面が入ります。DSP・PAGEのセルを修正するときは、入力欄の下に表示と画面が小さな図で表示され、そこから選んで入力できます。 * 7セグモジュールを抜いて差し直すと、約1秒以内に画面全体を送り直します。 {{ :ja-jp_products:mp_studio:fnd-fscr-rungs.png?1000 |図18. P0によって画面0と画面1を切り替えて表示するラング }} ===== シミュレーションでの確認 ===== シミュレーション中に7セグ画面エディタを開くと、シミュレーターが7セグに送った文字がガラスに表示されます(V1.3.0以降)。画面方式とボックス方式のどちらもシミュレーションできます。シミュレーションの開始・終了方法は、[[:ja-jp_products:mp_studio:simulation|Phase 8 · シミュレーション]]を参照してください。 {{ :ja-jp_products:mp_studio:fnd-sim-marked.svg?1000 |図19. シミュレーション中の7セグ画面エディタ }} * **① 状態チップ:** **シミュレーション · 実行中 · 画面 N**のように、実行状態と現在表示されている画面が表示されます。 * **② 表示の状態:** 表示の一覧の各表示に、**点灯**・**消灯**・**応答なし**・**線が未設定**のいずれかが表示されます。 * **③ ガラス:** 値フィールドの桁にはシミュレーターの実際の値が表示され、ガラスの枠が緑色に変わります。固定文字は、エディタの内容がそのまま表示されます。 * **④ 状態行:** ガラスの下に、現在表示されている画面と、7セグに関する情報が1行で表示されます。 * **⑤ 値:** **この画面の値フィールド**に、各値フィールドが現在表示している文字が表示されます。 エディタは、最初は7セグに表示されている画面に追従します。別の画面を選ぶと追従が止まり、ガラスの下に**7 セグ表示 N には今、画面 M が表示されています。編集中の画面 K とは異なります。**と**その画面へ移動**が表示されます。**その画面へ移動**を押すと、再び表示中の画面に追従します。 {{ :ja-jp_products:mp_studio:fnd-sim-other-screen.png?1000 |図20. 表示中の画面とは別の画面を編集している状態 }} シミュレーションがオフのときは、ガラスの下に**シミュレーション開始**ボタンが表示されます。 ==== ボックス方式のシミュレーション ==== ''FINI''・''FINT''・''FDATA''が使う7セグは、左側の一覧の**ボックス方式 (FINI·FINT·FDATA)**の下に表示されます。項目を選ぶと、中央のガラスにその7セグが表示されます(読み取り専用)。ガラスの文字をクリックすると、その形が**文字表**に移ります。 {{ :ja-jp_products:mp_studio:fnd-sim-legacy.png?1000 |図21. ボックス方式の7セグのシミュレーション }} * ボックス方式ではモジュールの桁数が分からないため、その表示を選んだときに左側に表示される**桁数**(**4 桁**・**6 桁**)で、ガラスの桁数を選べます。この設定はこのPCにだけ保存されます。 * ガラスの下には、その7セグに関する情報が表示されます。例: **数値が表示桁数(LEN)より長いため下位の桁だけが表示されます — 機器も同じです。**、**まだ FINI が実行されていないため 7セグの線が設定されていません — それまでの FINT・FDATA はチップに届きません。** ===== モニタリング中の機器の7セグ表示 ===== 実際の機器をモニタリングしながら7セグ画面エディタを開くと、機器が7セグに送った文字をガラスに表示します(V1.3.0以降)。状態チップに**機器の表示 · 画面 N**が表示され、ガラスの下に**機器 RAM の 7 セグシャドウ — チップに送ったとおり**と表示されます。 {{ :ja-jp_products:mp_studio:fnd-device-marked.svg?1000 |図22. モニタリング中に機器の7セグを表示しているエディタ }} * 機器は、7セグに送った文字を機器のメモリにも残します。MP STUDIO 2はその値を読み取って表示するため、7セグモジュールが実際に表示している内容とは異なる場合があります(モジュールの故障や配線の誤りは検出できません)。 * 機器のプログラムがこのプロジェクトと同じであると確認できた場合にのみ表示します。異なる場合や確認できない場合は、ガラスを描かずに理由を表示します。 * エディタが開いている間だけ読み取ります。表示が2つ以上ある場合は1回に1つずつ順番に読み取るため、表示が多いほど更新が遅くなります。 * モニタリング中に値フィールドを修正すると、修正していない値フィールドにだけ機器の実際の値が表示され、ガラスの枠が点線に変わって、**編集した値欄はまだ機器にないため、その欄はプレビュー値で描きます。**と表示されます。修正した内容は、ダウンロードしないと機器に反映されません。 * ボックス方式の7セグも表示します。ただし、ピンの異なる''FINI''が2つ以上あるプログラムでは表示しません。 {{ :ja-jp_products:mp_studio:fnd-device-edited.png?1000 |図23. モニタリング中に値フィールドを修正した状態 }} ==== 表示の状態と理由 ==== {{ :ja-jp_products:mp_studio:fnd-status-marks.svg?800 |図24. 表示の一覧の状態マーク }} ^ 表示 ^ 意味 ^ | **点灯** | 7セグが点灯し、画面を表示しています。 | | **消灯** | 7セグがまだ点灯していません。 | | **応答なし** | 7セグが応答しません。機器は約1秒ごとに7セグを探し直します。モジュールの接続と配線を確認してください。 | | **線が未設定** | 機器が7セグの信号線をまだ準備していません。 | | **PLC のプログラムが異なる** | 機器のプログラムがこのプロジェクトと異なります。ダウンロードすると表示されます。 | | **機器のプログラムが不明** | 現在の接続で、このプロジェクトをダウンロードした記録がありません。ダウンロードすると表示されます。 | | **機器プログラム確認中** | 機器のプログラムがこのプロジェクトと同じかどうかを確認しています。 | | **TX バッファが小さいため読み取りません** | 有効なシリアルポートのTXバッファが10バイトより小さくなっています。**設定 → データメモリ**のSERIALの欄を10以上に増やしてください。 | | **変化し続けて揃えて読めない** | 読み取っている間も表示が変わり続けるため、2回に分けて読んだ文字を揃えられません。**設定 → 通信ポート**の**モニター読み取りをまとめる**をオンにし、シリアルポートのTXバッファを14バイト以上に増やしてください。 | | **PLC 応答なし · 値は不明** | PLCがモニタリングに応答しません。 | | **新しい値なし · 値は不明** | モニタリングは続いていますが、7セグの新しい値が届きません。 | | **まだ点灯していない・表示不明** | 機器のプログラムが起動した後、まだ7セグを点灯させていません。 | | **シャドウの値が異常** | 機器から読んだ値が、7セグの記録の形式になっていません。機器に別のプログラムが入っている可能性があります。 | | **7 セグのピンが複数** | ピンの異なる''FINI''が2つ以上あるため、ボックス方式の7セグを表示しません。 | ''MPS-8A8R''・''MPS-16A8R8T''は7セグの応答を読まないため、**応答なし**は表示されません。代わりに、ガラスの下に**この機種はチップの応答(ACK)を読まないため、チップが外れても分かりません — 1 秒ごとに画面を送り直します。**と表示されます。 ===== チェックと警告 ===== ==== ラダーのセル ==== 7セグのセルに問題がある場合は、セルが赤く表示されるか(コンパイルされません)、アドレスがオレンジ色で表示されます(警告。コンパイルはできます)。セルにマウスポインターを合わせると理由が表示され、セルを選択するとインスペクターにも同じ理由が表示されます。 {{ :ja-jp_products:mp_studio:fnd-cell-warning.png?700 |図25. LENGTHが0のFINTのセルと、インスペクターに表示された警告 }} ^ 状況 ^ 表示 ^ セルに表示される理由(冒頭) ^ | ''FINT''のLENGTHが0 | オレンジ色 | **FINT の LEN(0)は 0 として読まれるため、FINT は常にエラー経路に入ります …** | | ''FINT''のPOSITIONが1~6の範囲外、''FDATA''のPOSITIONが1~4の範囲外 | オレンジ色 | **FINT の POS(…)は …** / **FDATA の POS(…)は機器が受け付けない値のため …** | | ''FINT''のPOSITION・LENGTH・SIGNの組み合わせで、数字または符号が左端を越える | オレンジ色 | **FINT の POS(…)と LEN(…): …** / **FINT の SIGN がオンのため …** | | ''FINI''が必要な機種で、''FINI''なしで''FINT''・''FDATA''を使用 | オレンジ色 | **FINT を使っていますが、プログラムに FINI がありません。…** | | MPAシリーズで、''FINI''とシリアル3通信を併用 | オレンジ色 | **この FINI が実行されるとシリアル 3 の通信がオフになります。…** | | ''FINI''のCLK・DIOが、その機種で使えない番号 | 赤色 | 使える番号も一緒に表示されます。 | | 7セグ画面が1つもないのに''FSCR''を使用 | 赤色 | **7 セグ画面が定義されておらず、FSCR が表示する画面がありません。** | | ''FSCR''のDSP・PAGEが表にない | 赤色 | **FSCR の DSP 値 … は 7 セグ表にありません。…** / **FSCR の PAGE 値 … は 7 セグ表示 … の画面リストにありません。** | | 端子が固定の機種で、2つ目の表示を呼び出す | 赤色 | **この機種は 7 セグを 1 台しか接続できないため、表示 … は使用できません。…** | | ''FSCR''が使う7セグに、ボックス方式のファンクションを併用 | 赤色 | **この 7 セグは画面(FSCR)が描きます — FINI は削除してください。…** / **… の値は画面のフィールドに移してください。** | | ''FSCR''が呼び出す表示の定義に問題がある | 赤色 | エディタの問題一覧と同じ文 | {{ :ja-jp_products:mp_studio:fnd-cell-red.png?700 |図26. 画面一覧にないPAGEを入力したFSCRのセルと、インスペクターに表示された理由 }} ==== エディタの問題一覧 ==== 7セグ画面の定義に問題がある場合は、エディタ下部の問題一覧に表示され、その表示を呼び出す''FSCR''のセルが赤く表示されて、コンパイルされません。行をクリックすると、該当する表示・画面・値フィールドへ移動します。問題がない場合は**問題なし**と表示されます。 {{ :ja-jp_products:mp_studio:fnd-issues.png?1000 |図27. ソースが空の値フィールドと、重なった値フィールドを知らせる問題一覧 }} ^ 問題 ^ 問題一覧に表示される文 ^ | ソースが空 | **表示する値が決まっていません。アドレスかシンボルを入力してください。** | | ソースを読み取れない | **… をアドレスまたはシンボルとして読めず、値を表示できません。** | | 表示形式とソースのデータ型が合わない | **… はこの表示形式で読めません。…** | | 機種・メモリ設定にないアドレス | **… はこの機種・メモリ設定にないアドレスです。** | | 値フィールドが重なっている | **値フィールドが前の値フィールドと重なり、2 つの値が互いに上書きします。** | | 値フィールドが桁の外にはみ出す | **値フィールドが画面からはみ出し、一部が表示されません。** | | 符号付きの値フィールドの幅が1 | **符号付きの値フィールドは幅が 2 以上ないと数値が表示されません。** | | 小数桁が大きすぎる | **小数桁 … ではこの値フィールドに小数点が表示されません。…** | | オン・オフの文字が幅より長い | **オン・オフのセグが値フィールドの幅より長いため、切れます。** | | 同じ表示番号・同じ画面番号が2つある | **同じ番号の 7 セグ表示が 2 つあるため …** / **同じ画面番号が 2 つあり …** | | 使えないピン・同じピン | **… ピン … はこの機種では使用できません。…** / **CLK と DIO が同じピンのため …** / **7 セグ表示 … と同じピンを使うため、2 台の 7 セグの信号が混ざります。…** | | 7セグを使用できない機種 | **この機種は 7 セグの線(CLK・DIO)を出せないため、7 セグ画面を使用できません。** | ===== 例 ===== ==== 例1. ボックス方式でD0の値を表示する ==== ''MPS-8A8R(T)-S''のFND / ENCOコネクタに4桁モジュールを接続し、''D0''の値を小数点以下2桁まで表示する例です。この機種では、''FINI''がなくても7セグが点灯します。 ^ ラング ^ 内容 ^ | 0 | ''@ON''(NO) → ''FINT D0 4 4 2 TRUE FALSE'' | | 1 | ''@ON''(NO) → ''MOVE 1234 D0'' | * ''FINT D0 4 4 2 TRUE FALSE''は、''D0''の1の位をPOS 4(右端)に書き込んで4桁を表示し、2桁目の後ろに小数点を付け、先頭の桁を0で埋めます。 * シミュレーションで7セグ画面エディタを開き、**ボックス方式 (FINI·FINT·FDATA)**の項目を選ぶと、''12.34''が表示されます。ラング1の''1234''を''5''に変えると、''00.05''が表示されます。 {{ :ja-jp_products:mp_studio:fnd-example1.png?1000 |図28. 例1をシミュレーションした様子 }} ==== 例2. 画面方式で運転値とエラーコードを切り替えて表示する ==== ''MPS-8A8R(T)-S''で、画面0に運転値''D10''を、画面1に''Er''とエラーコード''D11''を表示し、''P0''がONになると画面1に切り替える例です。 - **設定 → 7セグ画面エディタ**を開き、**7 セグ表示を追加**を押します(表示1・4桁・画面0)。 - 画面0: 桁1をクリックし、**値フィールドを追加 → 10 進**を押してから、**ソース**に''D10''を入力します(開始桁1・幅4)。 - **画面一覧**の**+**で画面1を作成します。 - 画面1: 桁1をクリックして''Er''を入力します。続けて桁3をクリックして**値フィールドを追加 → 10 進**を押し、**ソース**を''D11''、幅を2にして、**先頭の桁を 0 で埋める**をオンにします。 - 下のラングを作成します。 ^ ラング ^ 内容 ^ | 0 | ''P0''(NC) → ''FSCR 1 0'' | | 1 | ''P0''(NO) → ''FSCR 1 1'' | | 2 | ''@ON''(NO) → ''MOVE 1234 D10'' | | 3 | ''@ON''(NO) → ''MOVE 5 D11'' | シミュレーションでは、''P0''がOFFのときは''1234''、ONにすると''Er05''が表示されます。ラング0・1の代わりに、''@ON''(NO) → ''FSCR 1 D20''の1つのラングにして、''D20''の値(0・1)で画面を切り替えることもできます。 {{ :ja-jp_products:mp_studio:fnd-example2-screen0.png?1000 |図29. 例2 — P0がOFFのとき(画面0) }} {{ :ja-jp_products:mp_studio:fnd-example2-screen1.png?1000 |図30. 例2 — P0がONのとき(画面1) }} ===== トラブルシューティング ===== ^ 症状 ^ 確認すること ^ | 機器の7セグに何も表示されない | エディタの表示の一覧で状態が**応答なし**の場合は、モジュールのVCC・GND・CLK・DIOの配線が製品ページのコネクタの図と同じか、CLKとDIOを逆に接続していないかを確認してください。ボックス方式で''FINI''が必要な機種の場合は、''FINI''を実行するラングがONになっているかをシミュレーションで確認してください。 | | 6桁モジュールで文字の順序が入れ替わる | 画面方式では、**桁の順序**を''2,1,0,5,4,3''に変えてみてください。それでも合わない場合は、**直接入力**でモジュールの順序を入力してください。 | | 数字の代わりにバー(‾または_)が表示される | 値が値フィールドの幅に収まっていません。幅を広げるか、値を確認してください。 | | ボックス方式で数字の一部だけが表示され、ファンクションの右側の信号が切れる | POSITION・LENGTH・SIGNの組み合わせにより、数字または符号が左端を越えています。セルのオレンジ色の警告を確認してください。 | | モジュールを差し直した後、ボックス方式の7セグが消灯している | 差し直したモジュールは、消灯した状態で起動します。ボックス方式では、''FINI''をもう一度実行するか、''FINI''のないプログラムの場合は機器を再起動しないと表示されません。画面方式では、約1秒以内に再び表示されます。 | | MPAシリーズで、シリアル3の通信が止まる | 7セグはシリアル3と同じUART端子を使うため、併用できません。''FINI''が実行されると、シリアル3の通信がオフになります。シリアル通信を別のチャンネルに移してください。 | | モニタリング中、エディタに機器の7セグが表示されない | ガラスの下に表示される理由を、[[#表示の状態と理由|表示の状態と理由]]で確認してください。 | ===== 関連文書 ===== * [[:ja-jp_products:mp_studio:functions|Phase 4 · ファンクション]] * [[:ja-jp_products:mp_studio:simulation|Phase 8 · シミュレーション]] * [[:ja-jp_products:mp_studio:monitoring|Phase 7 · モニタリングとデータテーブル]] * [[:ja-jp_products:mp_studio:lcd_screen_editor|LCD 画面エディタ]] * [[:ja-jp_guide:seven_segment|7セグメントLEDガイド]] [[:ja-jp_products:mp_studio|← MP STUDIO 2 ユーザーマニュアルに戻る]]