本人使用的是DVP的PLC,也是上网搜索了好久,再加上自己的实验,终于实现了与PLC的通信。这是下面简单使用的例子,交流加QQ:576873778
//(小袋码数据库重复)发送及停止红灯信号
public void SendAlarmSignal_Box()
{
try
{
string dataStrOpen = "01050501FF00";//要发送的开命令,具体是什么字符串,要看你使用的PLC的说明文档,大致应该是差不多的
string sendStrOpen = JSNH.CommonAndComparer.MyLxfMD5.SendStrMake(dataStrOpen);//调用方法生成lrc码
string dataStrClose = "010505010000";//同上,关闭命令
string sendStrClose = JSNH.CommonAndComparer.MyLxfMD5.SendStrMake(dataStrClose);//同上
SerialPort temPort = null;
lock (temPort = this.ioDevicePort)
{
temPort.Write(sendStrOpen);//发送开指令
}
Thread.Sleep(this.boxRepeatTimeOut);//延时,注意的是:如果是汽缸之类的设备,至少要200毫秒的时间,不然一开就关了,汽缸根本反应不过来;如是灯,这个时间,就是灯要亮多长的时间值了。
lock (temPort = this.ioDevicePort)
{
temPort.Write(sendStrClose);//发送关指令
}
}
catch (Exception ex)
{
this.HandleProduceLineMessageEvent(new ProduceLineMessageEventArgs("红灯警报信号发送错误"));
//写入日志
}
//makelrc 生成和验证码