程序总会有问题,满意的程序都是调试出来的。所以相比于一上来就追求程序的结果,有效的调试手段更重要。
博途平台的一个亮点就是它的Trace功能。最近二年PLC程序的调试,几乎全是用Trace完成的。动态的部分,需要对每个扫描周期的数据都锱铢必较,再辅助以监控表对相对静态数据的监控。已经很难想象自己脱离Trace了。
Trace会让一个新功能的开发迅速迭代到比较完善的状态,效率非常高。它可以高效揭示原本凭直觉不易察觉的细节,可以帮助自己构建新的直觉方式。
用久了会觉得Trace很像一种编程工具,一种图形化的语言。很多时候甚至等于在为Trace而编程,为之搭建可显现逻辑脚印的代码组织方式和数据结构。
通信是工控的重头,以太网和串口。监控程序只能知道PLC内部的数据形态。对于网络上的物理形态的数据采集,要有其它硬件手段。
以太网需要用带有端口镜像的交换机,把网络流量引入电脑,用软件抓包查看细节。
串口如485线路,可以用485转USB来引入电脑串口,用串口软件监控报文。在485线路上用示波器查看电压波形报文。
这几样很经济的工具,可以让网络调试非常有效率。PLC中开放以太网通信和串口通信,它们的数据,换一个物理角度的对照,可以有效发现和解决问题。
还有一些受控环境的仿真调试。比如坐在屋里对PID进行模拟调试,可以在PLC中模拟过程变化的反馈。这对控制过程的方式创新很有用处。
其实就是尽可能用数据来发现真相,而不是仅靠模糊的经验印象。在复杂的场景中,数据才靠谱。
依赖工程现场的调试,在很多时候是奢侈的,所需的条件和代价很多。前面提到的还是省钱、便利、高效,容易上手的一些手段。个人经验有限,目前用的也就这些了。像运动控制是很难脱离现场来深度调试的。