C SerialPort 讀寫三菱FX系列PLC

2021-10-13 21:35:11 字數 1521 閱讀 3767

c# serialport 讀寫三菱fx系列plc

1:串列埠初始化 

com = new serialport("com3", 9600, parity.even, 7, stopbits.one);

2:開啟關閉串列埠

if (com.isopen)

com.open();

if (com.isopen)

3:c# ascii轉字元及字元轉ascii

public static string chr(int asciicode)

;string strcharacter = asciiencoding.getstring(bytearray);

return (strcharacter);

}else

public static int asc(string character)

else

4:寫入串列埠的命令字串的和校驗

///

/// 和校驗

///

///

///

public string sumcheck(string data)

string res = sum.tostring("x");

res = res.substring(res.length - 2, 2);

return res;

5:寫入plc

private void btnwrite_click(object sender, eventargs e)

string write = new string ; //將準備寫入plc的值

//將要寫入的值轉換成16進製制數,補齊兩個位元組,注意高低位元組需要交換

string swritedata = "";

for (int i = 0; i < write.length; i++)

swritedata += s.substring(2,2)+s.substring(0,2);

}messagebox.show(swritedata);

//寫入命令,1表示寫入,1194表示d202這個位址的16進製制,04表示d202,d203為4個byte,1194=(202*2)+4096的16進製制數,至於用它表示d202的起始位置,三菱故意要這麼麻煩了.

swritedata = "1119404" + swritedata + chr(3);

//chr(2)和chr(3)是構成命令的標誌字元,然後加上校驗和,命令組織完成

swritedata = chr(2) + swritedata + sumcheck(swritedata);

messagebox.show(swritedata);

//寫入串列埠

com.write(swritedata);

//byte data = encoding.ascii.getbytes(swritedata);

6:讀plc

private void btnread_click(object sender, eventargs e)

}

C SerialPort 讀寫三菱FX系列PLC

c serialport 讀寫三菱fx系列plc 1 串列埠初始化 com new serialport com3 9600,parity.even,7,stopbits.one 2 開啟關閉串列埠 if com.isopen com.open if com.isopen 3 c ascii轉字元及...

C SerialPort 讀寫三菱FX系列PLC

1 串列埠初始化 com new serialport com3 9600,parity.even,7,stopbits.one 2 開啟關閉串列埠 if com.isopen com.open 3 c ascii轉字元及字元轉ascii public static string chr int a...

三菱Q系列讀寫資料

這兩天看了下三菱q系列的mc協議,網上沒找到類似的delphi 自己手寫乙份,以下是傳送讀指令的 貼出來,有用的朋友可以拿去看看,注 這份是qna的c24模組的幀3c相容的第四種格式的協議規範,時間關係,其他的格式沒寫,有需要的博友到通訊手冊裡找找就有了。procedure tform1.butto...