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...