C#通讯框架改写
程序员文章站
2022-07-11 09:12:04
现有项目是利用C#的socket与PLC进行实时通讯,PLC有两种通讯模式——常规采集&高频采集。 其中常规采集大概在10ms左右发送一次数据,高频采集大概在2ms左右发送一次数据。 现有代码框架:在与PLC进行连接时,通过建立委托并创建线程的方式,来循环读取数据 只要连接PLC成功后,会一直在后台 ......
现有项目是利用c#的socket与plc进行实时通讯,plc有两种通讯模式——常规采集&高频采集。
其中常规采集大概在10ms左右发送一次数据,高频采集大概在2ms左右发送一次数据。
现有代码框架:在与plc进行连接时,通过建立委托并创建线程的方式,来循环读取数据
//创建委托 public delegate void plc_hd_receive(byte[] recv_data); public plc_hd_receive plc_recv_delegate_hd; //给委托绑定方法 plc_recv_delegate_hd = new plc_hd_receive(plc_receive_callback_hd);
//创建线程 plc_thread_hd = new thread(new threadstart(plc_readthread_hd));
plc_thread_hd.isbackground = true; plc_thread_hd.start();
//在线程内调用委托 this.begininvoke(this.plc_recv_delegate_hd, new object[] { recv_buffer_hd });
只要连接plc成功后,会一直在后台读取plc发送来的数据,并解析数据
现有问题:实时性和数据完整性不够,有些操作会导致socket断掉连接。
计划:改写现有代码框架,加深对通讯的理解,和对实时数据流的处理。
上一篇: Java基础--常用API--java.lang.Object
下一篇: 打印所有的水仙花数