关于PLC如何编程的问题讨论 点击:1393 | 回复:4



wyb2866255

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-04-14 18:10:13
楼主

        最近,有一网友给我发个邮件,他说:“现在有一个影响我进一步学习的问题。我先打个比方:我学了“我”字,“爱”字,“工作”词语,然后如果用这几个字可以组句:我爱工作。因为我明白中文的语法,主语放在前,谓语放在中间,宾语放在最后。主谓宾都分明的情况下,中文的意思就非常明白了。
所以我的问题是:我学了PLC很多的指令,指令也稍好理解。但我们不懂得PLC编程语法,不懂如何把指令组合起来用到实际中去。写一句话必须要懂语法,但我现在不懂得PLC编程语法,不会把指令用到实际当中去,您说我如何解决这个问题?”
        像这位网友给我发邮件的还有几位,都是刚刚毕业参加工作不久的的初学者,都提出类似的问题:问我怎样才能学好编好PLC程序?
       PLC编程如同人写文章一样,同样的文字不同的组合,写出的效果不一样,有的语言精练,条理清晰,几句话说明问题,有的却相反,啰里啰唆,越讲越让人糊涂。如何才能写出好文章呢?只有深入学习,提高文学素质,多写多练,不断积累,不断总结经验,肯定会成功的。对PLC编程也是一样,也要深入学习,提高编程素质,也要多编多练,不断积累,不断总结经验。提高编程素质,不仅仅要深入理解每条指令内涵及用法,还要扩大知识面,使你扩大视野,增强思维和分析问题的能力。
        现举一例:从网上看到一网友求助:其内容为: 有个PT100的温度传感器 通过500欧姆的电阻将4~20MA的电流转换成2-10的电压信号送到PLC模拟量端! h对应的温度范围是0~100度!转换公式为 : 


      我给他的回帖是: 4-20ma电流通过500欧姆电阻将产生2-10V 电压,送入PLC的模块,从转换公式可知:式中的6400这个数是由2V转换来的数字量(因为输入2V 时 要使T=0,必需公式的分子项的转换值AIWO-6400=0才行),从中又可知:1V对应的数字量=3200,式中的“AIWO-6400”值即为2-10V输入时模拟块转换的数字量减去2V的数字量的值,当输入=10V时,其值=3200*8=25600,要使此时温度显示值为100,就得将此值除以256,但式中后面又乘100,故公式的分母项上 为25600,即=32000-6400。
       可见:这个问题就不是简单用指令编程的问题,它涉及到电学及数学知识,如果没有这方面知识,该公式是很难理解的。
       再举一例:有一在线探伤生产线,在辊道上安放一光电开关,当钢管通过它时,其触点闭合,开始探伤与测长,钢管离开光电开关后,立即将测长值和探伤数据上传给计算机进行处理。由于钢管是旋转前进,如钢管不直,会摆动前进,往往会使光电开关瞬间闪动,使至PLC误判,以为探伤结束给上位机上传错误数据,怎样解决这个问题 ?如你有深厚的电路基础知识,就会想到可以用通电延时与断电延时两个定时器来解决:将二个定时器的时间设定为大于光电开关瞬间闪动的时间,利用断电延时定时器在断电后需延时一段时间方可断电的特性,就可解决光电开关瞬间闪动的问题,但由于它延长一段时间才断开,使对钢管的测长不准,为此,又增加通电延时定时器,用通电延时定时器开关动作的前沿,触发一内部的位开关(比如:M1.0)使其置“1”,用断电延时定时器的开关后沿触发M1.0使其置“0”,这样,用M1.0 做测长计数控制门,就可解决测长不准的问题。
       再如:探伤完了的钢管走出探伤区后,需对它进行分选,将不合格的拨到废品筐。如探伤完后,立即分选,这样情况编程好实现,但现场废品筐的位置离很远的地方,当钢管走到废品筐时,探伤机已探完3或4根钢管,即辊道上已存在3-4根已探完伤的钢管在运行,如何准确无误的将不合格的钢管拨到废品筐里,这对编程也是件辣手的问题。如果你有电子线路设计基础,就会想到,用移位存储器来实现对多根钢管的质量状态进行实时跟踪,你可以这样编程:用一个字节存储器,如:MB100,用它做移位存储器(他可记忆八根钢管质量状态),启动时,先将它清零,探伤时,如发现有伤,立刻将MB100 的最低位置“1”(即:使M100.0=1),当钢管探伤完毕走出探伤区时,用左移指令使MB100左移一位。如果现场是探伤后的第四根到废品筐位进行分选,编程时应将M100.3与废品筐到位的分选开关的常开触点串联,再去驱动拨料装置。这样,当钢管走到废品筐使其到位的控制开关吸合,这时,如果M100.3=1,将驱动拨料装置动作,将钢管拨入废品筐,如果M100.3=0,说明此钢管是合格品,驱动拨料装置不动作,钢管继续在辊道上运行。
        通过上面几个举例,可以看出,扩大知识面,会使你的思路变宽,使你能合理巧妙的使用指令编程,不仅使语句精炼短小,而且控制动作合理可靠。要达到这样编程水平,就得多编多练,不断的总结经验,不断的积累,积累不仅仅是自己的经验,也要虚心向有经验的同行学习,多看看别人的程序,吸收好的编程方法和思路,来不断地提高自己的编程水平。
     下面举一个编程实例,讲讲对一个具体项目如何进行编程:
      这是网上擂台的题目:一台电动机要求在按下起动按钮后,电动机运行10秒,停5秒,重复3次后, 电动机自动停止。同时设置有手动停机按钮和过载保护。编写梯形图控制程序。PLC可以随便选用,要有相关说明。 注意:要有PLC控制电路和I/O分配表。
      1、硬件选择:一台PLC(S7-200)、一个交流接触器Z0(控制电机运行)、2个按钮开关(SB1、SB2)及1个过流继电器(FR),电路图如下:(不包括粉色虚线框部分)
       2、 编程:用不同思路,可编出几种不同的控制方案,都可实现该项目要求。
     (1)、最简单的编程方案,就是选用5个通电延时定时器:其3个定时10秒,用于电机启动运行,另2个定时5秒,使电机停。具体编程也有二种方式,见下图:



        上图中的方案一与方案二,同用5个定时器,完成同样的功能。
        方案一是这样编程:按下启动按钮(I0.0),使 M0.0=1,T101得电开始延时,延时10秒,T101吸合使M0.1=1、M0.0=0,使T101断电,而T102得电开始延时,5秒后T102得电吸合,使M0.2=1,M0.1=0。。。直到T105得电延时断开。在此过程中,M0.0、MO.2、M0.4都是10秒的导通时间,用它们去控制Q0.7,其彼此间隔时间为5秒(即M0.1、M0.3的通导时间)。
        方案二是这样编程:按下启动按钮(I0.0),使 M0.0=1,T101得电开始延时,延时10秒,T101吸合,使T102得电开始延时,延时5秒,T102吸合,使T103得电开始延时。。。直至T105得电延时,延时10秒后动作,使



奥特曼带我走

  • 精华:0帖
  • 求助:1帖
  • 帖子:5帖 | 394回
  • 年度积分:0
  • 历史总积分:2188
  • 注册:2010年4月22日
发表于:2011-04-14 19:44:20
1楼

顶楼主!!       

hrpdd

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:14
  • 注册:2010年9月19日
发表于:2011-04-14 22:09:04
2楼
楼主好  本人现在在做关于214xp发脉冲控制伺服电机  遇到困难 求助

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2011-04-14 23:11:59
3楼
2楼:能否说得更详细一点:你是怎样做的?遇到什么困难,想怎样解决。。。

彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2011-04-15 12:45:56
4楼

好文章                                   


热门招聘
  • 客服
  • 小程序
  • 公众号