MZPlatformユーザー会

フォーラムへの返信

10件の投稿を表示中 - 371 - 380件目 (全794件中)
  • 投稿者
    投稿
  • MZPlatformユーザー会
    キーマスター

    文字列データの受信で欠落があるということでバイト単位の受信にすることは、本質的な解決にはならないように思います。送信側を自由に決められるのであれば、むしろ文字列データ側に工夫をして、エラー検出やエラー補正の仕組みを検討してはいかがでしょうか。

    とは言え、バイトデータ受信についても、回答します。文字列データ受信に比べて複雑なので、あまりおすすめできませんが、バイト列を送信する既存機器からのデータ受信では避けて通れないため、機能としては存在します。性質上、必ず動作するサンプルを作成するのが難しいため、下記長文の説明にてご容赦ください。ご不明な点は再度お問い合わせください。

    まず準備として、シリアル通信コンポーネントの属性情報設定で、下記を変更します。
    ReadMode 3(バイトデータ読み込み)
    ByteReadMode
     0(シングル符号あり)
     1(シングル符号なし)
     2(ダブル符号あり)
     3(ダブル符号なし)
    ご自身で上位バイトと下位バイトに分けて送信する場合は、0か1になります。

    バイトデータ読み込みモードでは、データの区切りを認識するために、ご自身で書式を適切に決めていただく必要があります。例えば、受信したいバイトデータの前に、データの開始を示す特定の1バイトを送ります。シリアル通信コンポーネントのデータ生成イベントの処理で受信したバイトを整数として判定して、そのバイトデータを受信したら、所定の読み込み処理を実行し、それ以外は無視するようにします。

    特定の1バイトの直後に2バイトで整数を送っている場合、所定の読み込み処理として次のような処理を実行します。ここでは符号なし(ByteReadModeが1)としたときの処理について書きます。

    下記はすべてシリアル通信コンポーネントのメソッドで、続けて実行します。
    #0: readByteSingleUnsignedArray(2) // 要素数2の配列としてバイト列を読み込む
    #1: getPacketValueAt(0) // 配列の0番目の要素のバイトデータを取得
    #2: getPacketValueAt(1) // 配列の1番目の要素のバイトデータを取得
    #3: getDoubleByteValue(#1処理結果,#2処理結果) // 2つのバイトデータから整数を取得

    このような処理を実行すると、2バイトデータから1つの整数を取得できます。
    なお、この方法では想定するバイト長に従って読み込んでいき、必要数取得したら進む感じになるため、逆に受信したデータのバイト数チェックはできません。

    以上、お試しください。

    返信先: ライセンスファイルについて #6099
    MZPlatformユーザー会
    キーマスター

    ライセンスに関する注意点としましては、付属のマニュアル「インストールガイド」P.21「6.3ライセンス管理についての注意点」にありますように、有線LANと無線LANを切り替えて使うノートPCで問題が生じることが多いので、まずは上記の説明をお読みいただければと思います。

    なお、試用期間はインストール後の初回起動から30日ですので、それ以降にライセンスエラーとなって再申請をしても再取得まで使えなくなる点はご容赦ください。

    確認させていただきたい点としては、上記のようなネットワーク接続の切り替えであれば、「チェックエラー(マシンID)」と表示されると思うのですが、そのようなメッセージが出るでしょうか。下記リンク先FAQもご参照ください。それ以外のメッセージであれば別の原因かもしれません。
    https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/license_install/license_install_a32.html

    上記のチェックではネットワークの物理アドレスを参照していまして、ネットワークインタフェースの有効無効によって参照できる物理アドレスの状態が変わると、エラーになる場合があります。また、最近のOSでは仮想の物理アドレスが割り当てられる場合もあるようなので、そのようなアドレスを用いてライセンスファイルが作られた場合には、仮想のアドレスが何かのタイミングで変わってしまうことでエラーとなる可能性があります。

    確認する方法としては、Windowsのコマンドプロンプトで、
    > ipconfig /all
    と入力するとそのときのネットワークインタフェースの状態がわかります。もしそのような状況が疑われましたら、有効無効の設定を変更して仮想のアドレスが参照されない状態にしてからライセンス申請ファイルを作成するなどの工夫が必要かもしれません。

    返信先: 帳票印刷 #6095
    MZPlatformユーザー会
    キーマスター

    帳票要素の繰り返し印刷は、一種類のデータしか扱えないという制限があります。そのため、同じテーブルでも別の列を同時に繰り返し印刷することができません。元のテーブルデータで列がわかれている二種類のデータを、同じ帳票内で繰り返し印刷をしたい場合は、印刷用にテーブルを作成して同じ列に必要な順番でデータが並ぶように工夫する必要があります。

    FAQでも同様の回答がありますので、ご覧ください。
    https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/paper_print/paper_print_a36.html

    返信先: 帳票印刷 #6091
    MZPlatformユーザー会
    キーマスター

    帳票コンポーネントの起動メソッドを駆使することで、一応ページの追加は可能です。しかし、このやり方ですとすべての処理をご自身で書かなければならず、おすすめできません。例えば、データが何ページ分になるか判定し、その数のページを追加し、各ページに必要な帳票要素を起動メソッドで追加することになります。できなくはないですが、あまりにも処理が複雑になりますし、すべての処理を実現できるかわかりません。

    それよりも、繰り返し印刷用のテーブルデータをテーブル格納変数などで作成して、ページ数が自動で増えるようにした方がまだ楽だと思います。サンプルを改変した例を添付します。2列のテーブルの行をデータ数に応じて5行ずつ追加して、左の列の上から順にデータを埋めていって作成したテーブルを印刷用のテーブルデータとして、帳票に表示しています。このように印刷用のテーブルを別に作成すれば、ページの方はデータに応じて自動的に追加されます。このやり方は印刷用のテーブルの形式によっては今回のように処理が長くなりますが、さまざまなパターンに対応できます。

    一方、もしラベルの繰り返し印刷でテーブルのような印刷レイアウトを実現するのでよければ、かなり処理が簡単になります。こちらもサンプルを改変してありますのでご確認ください。ラベルの繰り返し印刷では、テーブルに対して特定列のセルの値を、繰り返し印刷が設定されたラベル要素に対して行の順に埋めていくので、要素が不足すればページも自動で追加されますし、上記のように印刷用のテーブルデータを別に作成する必要がありません。

    添付ファイル:
    返信先: 帳票印刷 #6089
    MZPlatformユーザー会
    キーマスター

    説明していただいた内容であれば、テーブル帳票要素の「繰り返し印刷機能」で対応できそうに思います。付属ドキュメントの「サンプル(帳票).pdf」(C:\MZPlatform\3.6\docs\sample)をご覧ください。帳票要素のテーブルに「繰り返し印刷」を設定すれば、データが多い場合に自動的に複数ページが印刷されます。

    いろいろ制限がありますので、ご希望の処理が実現できそうかお試しいただけますでしょうか。ご不明な点は再度お問い合わせください。

    FAQにも同様の質問がありますので、こちらもご覧ください。
    https://ssl.monozukuri.org/mzplatform/faq/faq/faq_technical/paper_print/paper_print_a20.html

    返信先: 5分単位で切り下げ方法 #6085
    MZPlatformユーザー会
    キーマスター

    ご希望の処理は、前回と同様に整数(BigInteger)格納変数を用いて計算できます。各セルの値を取得して変数に設定し、2を足してから5で割った値に5を掛けると5単位で丸めた値が得られます。
    整数の計算の部分だけ作成したサンプルを添付しますので、お試しください。

    ところで、切り下げでなくなりますと、58と59が60になってしまいますが、大丈夫でしょうか。
    ご確認ください。

    添付ファイル:
    MZPlatformユーザー会
    キーマスター

    使い方次第では使えると思いますが、どのような使い方を想定しているかによると思います。

    まずはガントチャートの機能概要を理解していただき、不明な点について再度お問い合わせいただけますでしょうか。MZプラットフォームをインストールすると、付属するドキュメントやサンプルが一緒にインストールされまして、その中にガントチャートに関するものがいくつかあります。

    ガントチャートの基本的な説明は「開発チュートリアル(実践編)」のLesson.11にあります。また、各種サンプルの説明としては「サンプル(グラフ化)」や「工程管理システム導入マニュアル」に使用例が含まれています。

    また、当サイトの「製造業での活用事例」に日新電機システム様の事例PDFがありまして、ガントチャートの使用例を確認できます。
    https://ssl.monozukuri.org/mzplatform/top/mz_application_ex/

    いずれにしろ、ガントチャートは各種タスク等の開始から終了までを時間軸に沿って帯のように表示するためのコンポーネントですので、表示したいデータをどのように準備してどのように表示するかはご自身で作成する必要がありますので、その点ご留意ください。

    MZPlatformユーザー会
    キーマスター

    はい、可能です。

    サンプルからの流用であれば、セルの値を設定するメソッドはExcelファイルアクセスの「現在のセルの値を設定する(String)」を使用していますね。こちらは、テキスト形式で設定するメソッドとなります。

    指定するデータが数値の場合「現在のセルの値を自動判別して設定する(Object)」を使用すればよいですし、指定するデータが文字列でも数値変換可能な内容であれば「現在のセルの値を数値として設定する(double)」を用いれば、Excel側のセルも数値になると思います。お試しください。

    返信先: エクセルの機能について #6079
    MZPlatformユーザー会
    キーマスター

    一応確認ですが、Excelでの表示機能がMZのテーブルコンポーネントにも存在するか、というご質問でしょうか。残念ながら、MZのテーブルにそのような機能はありません。

    返信先: イベント生成について #6072
    MZPlatformユーザー会
    キーマスター

    テーブルのセルの値を更新して、その結果発生するイベントの処理で別のセルの値を設定(更新)するには工夫が必要です。データ更新イベントの処理中に「セルの値を設定する」を呼び出すことになり、その時点でデータ更新イベントが発生して入れ子のループになってしまいます。おそらく、途中でエラーが発生して2つ目の入力に到達していない状況だと思います。

    このような場合は、「イベント伝播制御」コンポーネントを使い、入れ子のループが生じないようにします。添付のサンプルをご覧ください。データ更新イベントが発生したら、それをイベント伝播制御コンポーネントに渡すようにします。イベント伝播制御コンポーネントから発生するデータ更新イベントの処理の中で、最初にイベント伝播を無視する設定として、処理が終わったらイベント伝播を元に戻します。このようにすれば入れ子のループが生じなくなりますので、その間で必要な処理を実行します。

    添付ファイル:
10件の投稿を表示中 - 371 - 380件目 (全794件中)