PLC程序应该怎么写(一) 点击:536 | 回复:0



yahanzhao3

    
  • 精华:1帖
  • 求助:0帖
  • 帖子:3帖 | 0回
  • 年度积分:3
  • 历史总积分:184
  • 注册:2012年7月16日
发表于:2020-10-12 22:50:27
楼主

        从在学校学习PLC课程开始到现在,使用PLC编程已经有十几个年头了。期间接触过多种主流PLC,如:西门子,三菱,AB等。感觉大同小异,学会一种再学习其他的上手会很快。所以学什么PLC不重要,重要的是编程思想

        说起PLC编程语言,那就绕不开梯形图,在最开始学习PLC编程时都是从梯形图开始,作为自动化专业学生理解梯形图语言来真的很形象,“母线”、“触点”、“线圈”,编程如同搭接电路。

image.png

但是使用中会发现简单的逻辑使用梯形图会很方便直观,当遇到复杂逻辑时,梯形图会变复杂,可读性差。

image.png



        如何处理复杂逻辑,我这里推荐PLC编程的另一种语言,就是“结构化文本”。各个主流PLC基本都有,西门子PLC中叫SCL语言。主要使用if.. than.., for, case等高级语言指令编写PLC程序,为什么推荐这种语言,因为结构化文本最容易表达我的编程思想。

       当在项目中实现一段逻辑,应该怎么做呢?我们知道遇到复杂问题时,要使用“分而治之”的方法,就是把一个复杂问题拆分成若干个简单问题,把若干个简单问题处理了,也就解决了这个复杂问题。

        如何拆分复杂问题,这里分享一种方法,叫作“状态法”,任何事物都可以按时间划分状态,人的状态按时间分为少年,青年,中年,老年。电机的状态按时间分为停止,起动中,运行,报警。这样分的好处是:在同一时空中,事物只存在一种状态,只需关注事物在某一种状态下的逻辑关系,完全不用考虑其他状态的逻辑。

image.png



        实现状态法如何编程?这里用电机举例,首先创建电机数据结构,增加一个int型变量“motor_state”表示电机状态字,0:停止,1:起动中,2:运行,3:报警。再增加一个int型变量“motor_cmd”表示电机控制字,0:空,1:启动,2:停止,3:清报警。结构化文本中case指令特别适合表示状态法。

image.png

以上程序是不是变的很简洁?下一次我将分享如何模块化程序,使PLC编程工作变的更加高效。

image.png

1分不嫌少!


楼主最近还看过


热门招聘
相关主题

官方公众号

智造工程师