C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.101979 の関連記事表示

<< 0 >>
■101979  データメモリ読込
□投稿者/ たかし -(2023/05/23(Tue) 19:29:23)

    分類:[.NET 全般] 

    宜しくお願い致します
    C# windows フォームアプリケーション.NET Framework

    前回の続きになってしまうのですが
    下記で文字を送れるようになりました


    Encoding shiftJISEncoding = Encoding.GetEncoding("shift_jis");
    byte[] shiftJISBytes = shiftJISEncoding.GetBytes(kanji);
    string abc = BitConverter.ToString(shiftJISBytes).Replace("-", "");
    abc = abc + new string('0', 10 * 4 - abc.Length);

    sendMessage = "WRS DM100.H 10 " + abc + '\r'
    _ = SendAndRecieve(sendMessage);

    private byte[] SendAndRecieve(string sendMessage)
    {
     netstream = tcpclient.GetStream();

     Encoding enc = Encoding.ASCII;
     byte[] sendBytes = enc.GetBytes(sendMessage);
     netstream.Write(sendBytes, 0, sendBytes.Length);

     System.IO.MemoryStream ms = new System.IO.MemoryStream();
     byte[] resBytes = new byte[50];
     int resSize;

     do
     {
      resSize = netstream.Read(resBytes, 0, resBytes.Length);
      ms.Write(resBytes, 0, resSize);
     }
     while (netstream.DataAvailable || resBytes[resSize - 1] != '\n');

     return resBytes;
    }


    次にDMの数字を読込みたいのですが
    string sendMessage = "RD DM4000.U" + '\r';
    byte[] byteReciveMessage = SendAndRecieve(sendMessage);

    この後はどう書けば読み込めるでしょうか
    わからないので宜しくお願い致します
    ちなみにDM4000には数字の12345(10進数16bit)がはいっています
親記事 /過去ログ178より / 関連記事表示
削除チェック/

■101980  Re[1]: データメモリ読込
□投稿者/ くま -(2023/05/23(Tue) 20:15:33)
    【PLC】キーエンスKV-7500で上位リンク通信でPCとPLCの通信を確立してデータを読み書きする方法
    https://extralab.org/wp/plc_pc_communication/

    DM61010→DM100に書き換えて通信テストできない?
    ほかにもvb.netになるけど
    ツールの作り方 &#8211; 通信編/上位リンク(KEYENCE)
    https://plc-memo.com/maketool5/

    vb.net→C#コード変換
    http://www.carlosag.net/Tools/CodeTranslator/

    実際の通信プロトコルまで調べて回答はちょっと...
    実機もありませんし...
    参考にされたサイト等があればその記載と「試したが、〇〇〇がうまくいかなかった」など載せていただかないと
    この後も難しいと思いますよ
記事No.101979 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101982  Re[2]: データメモリ読込
□投稿者/ radian -(2023/05/24(Wed) 09:26:36)
    2023/05/24(Wed) 09:30:01 編集(投稿者)

    > この後はどう書けば読み込めるでしょうか

    それを考えるのが、あなたの仕事なのでは?
    〜のようなソースで、〜という想定が、〜となってしまうけど
    どう修正すればいいか的な質問ならまだ回答出来る可能性はあります。

    厳しい事を言うけど、通信の仕様書を見てどんなプログラム書けばいいかを
    自分で考えられないスキルの人間がやる仕事ではないと思います。
    会社でやってるなら、早めに上司に相談する事をお勧めします。
記事No.101979 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101983  Re[1]: データメモリ読込
□投稿者/ kiku -(2023/05/24(Wed) 09:29:30)
    No101979 (たかし さん) に返信
    > 次にDMの数字を読込みたいのですが
    > string sendMessage = "RD DM4000.U" + '\r';
    > byte[] byteReciveMessage = SendAndRecieve(sendMessage);
    >
    > この後はどう書けば読み込めるでしょうか
    > わからないので宜しくお願い致します
    > ちなみにDM4000には数字の12345(10進数16bit)がはいっています

    上記、byteReciveMessage変数内に、応答が返ってきていないですか?
記事No.101979 のレス /過去ログ178より / 関連記事表示
削除チェック/

■101984  Re[2]: データメモリ読込
□投稿者/ たかし -(2023/05/24(Wed) 10:17:57)
    No101983 (kiku さん) に返信
    > ■No101979 (たかし さん) に返信
    >>次にDMの数字を読込みたいのですが
    >>string sendMessage = "RD DM4000.U" + '\r';
    >>byte[] byteReciveMessage = SendAndRecieve(sendMessage);
    >>
    >>この後はどう書けば読み込めるでしょうか
    >>わからないので宜しくお願い致します
    >>ちなみにDM4000には数字の12345(10進数16bit)がはいっています
    >
    > 上記、byteReciveMessage変数内に、応答が返ってきていないですか?


    string result = encoding.GetString(byteReciveMessage);
    textBox2.Text = result;

    すみません。上記で見ましたら応答が返って来ていました
    ありがとうございました
記事No.101979 のレス / END /過去ログ178より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -