随着PLC功能越来越强大,与计算机的距离越来越近,PLC的编程语言也越来越丰富。原来只有梯形图、功能图、语句表,后来逐步开始支持BASIC、C、PASCL等高级语言,现在西门子博图已经可以实现多种语言混合编程。
从PLC的发展历史看,PLC最初是为了替代复杂继电器逻辑。看惯了继电器逻辑的电气人员对于梯形图还是非常熟悉。功能图是梯形图的另外一种表达方式(两者可以互转),也非常直观易懂。
梯形图(仅用于演示结构)
功能图(仅用于演示结构)
智慧制造是我国工业发展的方向,自动化是前提。越来越多的工程师开始从事PLC的编程,大家对于如何选择编程语言的讨论也越来越多。我前几天发了一篇文章《》,然后头条就给我推荐了很多SCL的文章,我感觉朋友们要理智对待高级语言编程。
诚然,高级语言的结构清晰,更容易构建大型复杂软件,另外,现在的同学在学校里可能学到的都是高级语言,因此,对其会产生一定的偏爱。但是,与梯形图、功能图相比,高级语言在维护便利性上要弱一些。状态查看不够直观,尤其是逻辑控制时,看高级语言是非常不容易的,即使西门子家的博图,也很难。程序是要被维护的,因此,语言的选择要考虑现场人员使用的便利性(设备一旦出现故障,需要尽可能短的时间内进行排障),能用直观方式解决的,就不要用复杂方式,越复杂的东西,问题越多,可靠性越低。
另外,虽然有高级语言,也不要在PLC里执行那些非常耗时,或者可能会导致执行周期大幅变化的程序(比如,有个条件调用,里面进行了复杂计算。有朋友甚至想用PLC做图像识别)。因为,周期和时序对于PLC控制非常重要,现场设备的动作需要确定性,必须确保在规定的时间里进行响应。
总之,要充分利用各种语言的优点来为控制服务,而不是为了炫技或者人为制造障碍而故意使用高级语言。比如,步进控制用梯形图实现就比较困难,用高级语言就容易。而脉冲沿检测、位操作、逻辑运算用高级语言就很搞脑子,用梯形图就很容易。我想,这也是混合编程的初衷吧!
2019年11月16日
说明:
1、本文是实践经验,非严格论文,与相关产品和理论可能不完全相符。
2、原创不易,欢迎转发,让更多朋友看到(引用请注明出处!)
3、如果您时间和流量充裕,点击一下广告,也是一种莫大的支持!谢谢!