在分析继电器控制逻辑或者模拟电路时,只需要考虑信号之间的相互关系,很少考虑先后顺序,因为在这些系统里,信号是以光速传播的,结果会立即生效,将结果反馈给前端进行输入,没有延迟。
对于PLC来说,它的核心是一个CPU。和所有的计算机一样,程序指令的执行是有先后顺序的,并且是一遍一遍循环扫描的。在一次扫描的过程中,后续的结果不能立即被前面的程序所使用,必须等到下一次扫描,才能有效。编制PLC程序时,尤其是复杂逻辑时,必须有清晰的时序概念(时序,就是按照时间先后顺序的意思)。学习PLC时,时序是一块重要内容。举个排水泵自动控制的例子(仅给出自动相关的I/O点),其工作原理:输入有低液位和高液位两个开关信号(都用浮子开关检测,浮子抬起时,信号为高电平,低头时,信号为低电平),输出为泵启动的信号。PLC里梯形图只用一段简单程序就可以实现高液位启动,低液位停止的功能,其逻辑和工作时序,如图1所示。
图1 水泵逻辑及工作时序图
对于PLC的调试,要用PLC编程软件。这些编程软件都能够监控各个变量、程序图的状态,这是基本功能,否则是不能进行调试的。对于大部分慢的、简单的逻辑,编程软件的基本功能就足够完成调试任务。如果逻辑比较复杂,跨很多页面,或者信号变化很快,单靠肉眼观察实时状态,并进行逻辑思考,是非常困难的。编程软件大部分会提供变量监控表,将需要关心的变量都放进去,点击监控,即可实时刷新状态,这可以一定程度解决大量变量监控的问题。对于复杂逻辑或者变化速度较快的程序,就需要借助时序图的工具,将变化过程记录下来,在事后慢慢分析。还说上面水泵控制的简单例子,如果遇到一个现象,水泵启动后,偶尔会在到达低液位前停止,什么原因呢?可能是低液位信号抖动,也可能是输出的接线松动等,这时候如果能得到当时的时序图,就很容易判断了。如果时序图如图2所示,我们就可以判断是低液位信号不可靠导致,去检查低液位信号的接线或者浮子开关即可。如果时序图如图3所示,则需要检查控制命令的输出接线和电机主回路。 图2 水泵控制时序图1
图3 水泵控制时序图2
可惜,大部分的编程软件是不提供时序图功能的。还好,现在有一些第三方的录波软件,可以实现时序录波功能。第三方通用录波软件是指那些非PLC厂家开发的,能对多种PLC进行连续录波的软件(有些只能对单一PLC进行录波),比较常见的是PLC-ANALYZER、IBA。这两个软件都是国外的软件,价格昂贵,无免费使用部分。一般PLC工程师无法承受。国内也出现了一些与IBA类似的录波软件,比如京城瑞达的录波软件,价格也较高,且只随项目销售。国内新出现的PLC-Recorder录波软件,与PLC-ANALYZER风格、性能类似(主界面见图4),价格极其低廉,且其很多功能都可以长期免费使用。图4 PLC-Recorder的主界面
除了程序调试和故障排查,录波软件还能用于记录用户关心的数据,用于后续分析,比如:记录电机的电流曲线,可以用于观察启动过程是否正常。记录流量、压力等工艺参数,查看生产是否稳定、传感器是否正常、闭环控制器性能是否合适等等。记录的数据如果和生产节奏等有关,则可以导出后,用于生产效率、控制过程等分析。PLC工程师一定要有时序概念,并掌握录波和分析波形的工具。由于波形里包含着大量信息,利用录波软件进行编程调试可以起到事半功倍的效果。