C#做PLC数据采集的代码

 在执行PLC数据采集时,按照以下的执行顺序:

1。先读取所有的DB块变量,因为这个执行时间较长,根据DB块的变量多少,可能要十几豪秒到几百毫秒,所以要用异步方式;

2。然后分段读取这些数据,这些指令在内存中执行,速度快,所以不用异步;

3。处理要写入PLC的数据,存放到dataWrite数组中;

4。考虑到执行时间,采用异步方式执行写入代码;

5。可以设定是否等待;

6。然后判断是否进行下一个循环;

上核心代码:

while (continueCollecting)
 {
     (var dataRead, var Collect) = await ReadDataAsync();     // 读取数据,指令完成后才执行下一指令

     ProcessRead(dataRead);    // 处理数据,可以不用异步,里面都是赋值的常规操作,在内存里
     var dataWrite = ProcessWrite();   // 处理数据,可以不用异步,里面都是赋值的常规操作,在内存里
     await WriteDataAsync(dataWrite);    // 写入数据
     await Task.Delay(0);                      // 指定延迟的毫秒数,根据需要等待一段时间.可选0
     continueCollecting = GData.systemVar.ConnectPLC1;         // 根据条件决定是否继续数据采集

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊波次得饿佛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值