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

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

C# と VB.NET の入門サイト

Re[2]: データメモリ読込


(過去ログ 178 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■101979 / inTopicNo.1)  データメモリ読込
  
□投稿者/ たかし (8回)-(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)がはいっています

引用返信 編集キー/
■101980 / inTopicNo.2)  Re[1]: データメモリ読込
□投稿者/ くま (2回)-(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/

実際の通信プロトコルまで調べて回答はちょっと...
実機もありませんし...
参考にされたサイト等があればその記載と「試したが、〇〇〇がうまくいかなかった」など載せていただかないと
この後も難しいと思いますよ
引用返信 編集キー/
■101982 / inTopicNo.3)  Re[2]: データメモリ読込
□投稿者/ radian (131回)-(2023/05/24(Wed) 09:26:36)
2023/05/24(Wed) 09:30:01 編集(投稿者)

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

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

厳しい事を言うけど、通信の仕様書を見てどんなプログラム書けばいいかを
自分で考えられないスキルの人間がやる仕事ではないと思います。
会社でやってるなら、早めに上司に相談する事をお勧めします。
引用返信 編集キー/
■101983 / inTopicNo.4)  Re[1]: データメモリ読込
□投稿者/ kiku (348回)-(2023/05/24(Wed) 09:29:30)
No101979 (たかし さん) に返信
> 次にDMの数字を読込みたいのですが
> string sendMessage = "RD DM4000.U" + '\r';
> byte[] byteReciveMessage = SendAndRecieve(sendMessage);
>
> この後はどう書けば読み込めるでしょうか
> わからないので宜しくお願い致します
> ちなみにDM4000には数字の12345(10進数16bit)がはいっています

上記、byteReciveMessage変数内に、応答が返ってきていないですか?
引用返信 編集キー/
■101984 / inTopicNo.5)  Re[2]: データメモリ読込
□投稿者/ たかし (9回)-(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;

すみません。上記で見ましたら応答が返って来ていました
ありがとうございました
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -