2 用户使用组态软件控制后,导致数据采集慢的原因
这是许多组态软件用户在编写上位机自动控制程序中所遇到的问题,到底是什么原因?能否有好的办法来解决?
我们先简单描述组态软件数据采集控制的原理。在正常情况下,组态软件定时向下位机发出读命令来等待下位机回应以截取想要查询的数据,周而复始的循环,数据便动态的显示在上位机上,实现数据“实时采集”。那么当我们需要对下位机进行控制时,组态软件就会相应写命令,实现上位机对下位机的“实时控制”。
表面上看去合情合理,可为什么会出现数据采集慢这种情况?原来一切“归咎于”组态软件的读写机制。组态软件为实现快速的控制,所以给写命令最高的优先执行权,也就是说,当有写(控制)命令时,组态软件首先执行写命令,直到没有写(控制)命令时组态软件才恢复正常的读(采集)循环。
由此,我们不难发现用户经常出现数据采集慢的原因。如果用户频繁将控制指令发出,系统将分配很少的时间给数据采集,从而导致数据采集变慢或者中断。用户在循环指令中重复给一个变量赋值(如y0=1),就会导致以上问题,所以我们的解决办法就是需要控制时控制,不需要控制时放手。为了实现这种控制方式,我们可以参考PLC的运行模式。
3 PLC运行原理

在没有中断的情况下,PLC采用“顺序扫描,不断循环”的工作方式。
1) 每次扫描过程。集中对输入信号进行采样,集中对输出信号进行刷新。
2) 输入刷新过程。当输入端口关闭时,程序在进行执行阶段时,输入端有新状态,新状态不能被读入。只有程序进行下一次扫描时,新状态才被读入。
3) 一个扫描周期分为输入采样,程序执行,输出刷新。
4) 元件映象寄存器的内容是随着程序的执行变化而变化。
5) 扫描周期的长短由三条决定:<1>CPU执行指令的速度;<2>指令本身占有的时间;<3>指令条数。
6) 由于采用集中采样。集中输出的方式,存在输入/输出滞后的现象,即输入/输出响应延迟。
4 小结
如上所述,在组态软件控制中,我们采用先运算再输出的方法,即,对IO变量有循环复杂运算操作时,我们采用中间变量计算,待计算出结果时我们再对IO变量赋值,这样就会解决控制中采集慢的问题。
凡《网络安全与数据治理》(原《信息技术与网络安全》)录用的文章,如作者没有关于汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权等版权的特殊声明,即视作该文章署名作者同意将该文章的汇编权、翻译权、印刷权及电子版的复制权、信息网络传播权与发行权授予本刊,本刊有权授权本刊合作数据库、合作媒体等合作伙伴使用。同时,本刊支付的稿酬已包含上述使用的费用,特此声明。