嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):78630559
本次赞助数额为: 4 元微信扫码支付:4 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
C#上位机读写台达PLC的M寄存器和D寄存器
//串口初始化
private void InitPlcCom()
{
CAutoGL.SetPLCSerialPort();
CAutoGL.PLCSerialPort.DataReceived = Incomm_PLCDataReceived;
}
//接收串口数据
public static StringBuilder Inbuilder = new StringBuilder();
private void Incomm_PLCDataReceived(object sender, SerialDataReceivedEventArgs e)
{
long received_count = 0;//接收计数
System.Threading.Thread.Sleep(50);
byte[] newByte = new byte[3];
try
{
CAutoGL.FlagGetPLC = true;
int n = CAutoGL.PLCSerialPort.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据
received_count = n;//增加接收计数
CAutoGL.PLCSerialPort.Read(buf, 0, n);//读取缓冲数据
Inbuilder.Append(Encoding.ASCII.GetString(buf));
string kk = Inbuilder.ToString();
Inbuilder.Clear();//清除字符串构造器的内容
CAutoGL.PLCInformation = kk;
//}));
CAutoGL.FlagGetPLC = false;
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message, "Read PLC informaiton ERROR");
}
}
public static bool LongToHexStr(ref string SetDataStr, long setData)
{
//string SetDataStr = string.Empty;
if (setData < 0)
{
setData = -setData;
setData = (setData ^ 0xffff) 1;
SetDataStr = setData.ToString("X4");
//SetDataStr = NegativeToHexString(setData);
}
else
{
SetDataStr = setData.ToString("X4");
}
//MDReg = SetDataStr;
return true;
}