西门子模块6ES7235-0KD22-0XA8支持验货

供应商
浔之漫智控技术-西门子PLC代理商
认证
手机号
15221406036
经理
聂航
所在地
上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
更新时间
2024-05-08 07:10

详细介绍

西门子模块6es7235-0kd22-0xa8支持验货

1 引言
近几年来,可编程序控制器(plc)以其可靠性高、适应性强、灵活性好、编程简单、容易掌握等特性,在各个领域发挥越来越重要的作用。在plc控制系统中,plc作为主要控制设备,必然与控制对象中各种输入信号(如按钮、限位开关、拔动开关、继电器的触点及其它检测信号等)和输出设备(如继电器线圈、接触器线圈、电磁阀等执行元件)相关联。在实际工作中,由于受plc应用系统规模的限制,plc输入/输出点数往往不够用。为此若采用扩展输入/输出单元或更换点数更多的plc来解决有时又不合算,为了降低系统硬件的成本,常常采用各种技巧减少系统占用的输入/输出点数,相当于扩展了plc的i/o点数。本文从硬件、软件两个方面介绍在不增加硬件情况下“扩展”plci/o点数的几种方法。

2 “扩展”i/o点数的方法
2.1 分组输入
有些plc控制既有“手动控制”又有“自动控制”,而自动控制程序和手动控制程序不会同时执行,这时可将自动与手动信号按不同控制状态要求分组接入plc输入端子,如图1所示(本文以三菱fx2小型plc编号分配为例进行梯形图设计)。图1中sa用来选择自动/手动程序,供自动/手动切换之用,sb2和sb1按钮都使用x0输入端,但它们不会同时起作用,图1中的二极管用来切断寄生信号,避免错误信号的产生。这样,通过plc的硬件公共点(com)接线的转换和软件分时执行各自不同的用户程序段的方法,使得plc的一个输入点可分别反应两个输入信号的状态,起到两个输入点的作用,来完成plc在两种工作状态下的输入功能,提高了plc输入点的利用效率,相当于扩展了plc的输入点的实际数量。其它x1-x7端相似。


图1 分组接入plc输入端子


2.2 采用硬件接线完成简单的“与”、“或”逻辑,减少电路i/o点数
(1) 减少电路输入点数
图2是一个由继电器、接触器组成的电动机起动、停止两地控制电路,可以实现电动机在两个地方起动、停止的控制。如将此电路改为plc控制,plc输入电路有多种接法,对应的梯形图也有多种。从图3和图4这两种接线图及相应的梯形图可以看出:图3的接线占用输入多(共5个),梯形图也显得复杂,但判断输入设备故障时形象较直观。当plc输入点比较紧张时,可采用图4所示的输入接线图,它占用plc输入点较少(共3个),相应的梯形图也比较简单。


图2 电机起/停两地控制电路

图3 图2的plc控制图(i/o点用的较多)

图4 图2的plc改进输入法(i/o点用的较少)


(2) 减少所需plc的输出点数
对于通断状态完全相同的负载,在plc的输出端点功率允许的情况下可并联于同一输出端点,即一个输出端点带多个负载。例如输出信号灯与负载并联,如图5所示,这样可减少一半输出点数。但要注意不能超出每个端点的允许负载能力。


图5 信号灯与负载并联时的情况


此外,还可采用三线-八线编码、译码方法,只增加少量的外部元件,即可实现将8个显示输出口减少为3个输出口。
2.3 通过软件编程减少电路i/o点数
(1) 用一个按钮实现起动和停止
一般情况下,plc控制的外部设备至少要有1个起动按钮和1个总停止按钮作为输入信号,来控制程序的运行和停止,因此至少需要2个输入点。当输入的总点数紧张时,也可用1个自复位按钮sb3实现起动和停止两种控制,其输入接线如图6所示,相应的梯形图可采用图7或图8所示的两种设计方法。图7中的m0为内部继电器,作中间环节使用。图8中采用了置位、复位指令及定时器t0来完成单按钮实现起动和停止的功能。采用图8所示的梯形图时,应注意t0的设定值应大于按钮x0按住的时间t。


图6 用1个自复位按钮实现启动和停止控制


单按钮起动、停止电路除了可以采用图7、图8所示的梯形图来实现外,还可采用移位寄存器或计数器来实现。


图7 对应于图6的梯形图

图8 图6的另一种梯形图


(2) 用4个输入点表示10个输入信号状态
对于直流输入模块,采用双常开按钮的编程技巧,输入点可在一定程度上得到扩展。例如,利用图9所示的梯形图可把4个输入点扩展为10种输入信号状态。图9中直流输入模块的x1、x2、x3、x4均接入常开按钮,利用这4个按钮的不同状态组合可表示10种输入信号。如假设图9中的个逻辑行表示正向起动,第二个逻辑行表示反向起动,第三个逻辑行表示总停止等等。


图9 4个输入点扩展为10种输入信号状态的梯形图


对应图9的输入接线如图10所示,图10中的二极管用来切断寄生信号。在调整时,若操作人员同时按下sb7和sb8(或sb6和sb9),则会发出报警信号。为了避免这种情况的发生,专门设置了一个判别程序,利用t12的常闭触点禁止第5到第10逻辑行执行,保证错误信号无法执行。编程过程中可用t0到t11替代sb1到sb10信号。
同前所述,也可采用8个输出点组成bcd码,表示100个输出信号的状态,可节省90多个输出点,具体梯形图从略。


图10 对应图9的输入接线图

3 结束语
通过使用以上介绍的方法,可以大大提高plc输入/输出点的利用效率,相当于扩展了plc的输入/输出点的数量,相对地缩小了plc的体积,节约了成本。

1 引言
     在机床的控制中,经常遇到类似如工件的夹紧/放松,冷却液的启动/停止,顶针的前进/后退等等的操作。对于这类动作,操作者往往希望通过一个按钮来实现:按一下按钮,工件夹紧;再按一下按钮,工件放松;再按一下按钮,工件又夹紧;如此循环往复。把这样的按钮称为双稳态按钮,即有两种稳定状态:接通和断开,而且两种状态都能保持。在数控系统中,机床控制面板上一般会提供一些按键供用户自由定义,但按键的数量往往是非常有限的,所以对按键的分配不得不斟酌再三。如果在plc程序中把按键做成双稳态的,一个按键身兼二职,就会使许多问题迎刃而解了。可见,plc程序把按钮做成双稳态,还可以节省输入点的数量,这样在经济上也是很合算的。

2 构成双稳态按钮的三种方法
在plc程序中构造双稳态按钮,有多种实现的方案,现在就介绍其中的三种方法。
2.1 通过set和reset指令来实现


图1 通过set和reset指令来实现双稳态按钮功能


图1程序中,当次按下按钮i0.0,此时条支路因串联的m0.1为常闭点,而使m0.0接通条件满足置位。第二条支路的执行条件不满足,暂且不去理会。再看第三条支路,假设持续按着按钮不释放,因支路中串联进i0.0的常闭点而使接通条件不满足,直到释放按钮i0.0,因串联的m0.0已经置位,从而使m0.1和q0.0输出保持为“1”。当第二次按下按钮i0.0时,因为m0.0的状态为“1”,条支路执行条件不满足,第三条支路因i0.0的按下而使m0.1和q0.0输出为“0”,m0.1由“1”变为“0”产生一个下降沿,使m0.0复位为“0”,从而使m0.1和q0.0的“0”状态得以保持,即使释放按钮i0.0以后。之后对按钮i0.0的操作,又重复上述过程。可见,得到的是一个双稳态按钮。
2.2 利用plc基本逻辑指令来实现
plc程序是按照一定的plc扫描周期循环往复地的执行程序代码。在每一个plc扫描周期内,先读入输入映像区内的信号状态,然后执行用户程序,后刷新输出映像区的信号状态。用户程序的执行是按照代码的先后顺序自上往下依次执行的。


图2 利用plc基本逻辑指令来实现双稳态按钮功能


图2程序中正是充分利用了plc程序的执行的特点,现在分析一下它的工作过程。按一下按钮,使i0.1变为“1”,在个plc扫描周期内,m0.0变为“1”,m0.1变为“1”,m0.1等于“1”会使m0.0变为“0”,但m0.0的状态变化要到下一个plc扫描周期才会执行,可见m0.0是宽度为1个plc扫描周期的脉冲信号。因为m0.0等于“1”,这样会使原来状态为“0”的q0.0变为“1”。从第二个plc扫描周期起,不论i0.1变为“0”或保持为“1”,m0.0变为“0”并稳定在“0”上,这样q0.0通过m0.0常闭点与q0.0常开点串联的支路保持为“1”状态。再按一下按钮,m0.0又产生宽度为1个plc扫描周期的脉冲信号,这个脉冲信号使原来状态为“1”的q0.0变为“0”并稳定在“0”上。如此每次按一下按钮,q0.0就在“0”和“1”之间切换一次,形成双稳态信号。
这一段程序中使用的指令是所有plc系统都支持的基本的指令,可以说在任何类型的plc上都可以实现,非常具有代表性,值得借鉴。
2.3 借助于算术运算指令来实现
在数字电路中,如果把输出的“非”端反馈到d触发器的“d”输入端,则每来一个时钟脉冲,d触发器的状态就翻转一次。


图3 利用算术运算指令实现双稳态按钮功能


图3所示的程序借鉴了数字电路中的d触发器的工作原理,按钮i0.0每按下一次,就相当于给触发器的cp端输入一个触发脉冲,相加所得“和”的低位状态就翻转一次,如果q0.0取自低位,就可得到周期性状态在“0”、“1”之间改变的双稳态信号。为了避免加法的计算结果溢出,判断如果累加到16位整数所能表示的大值32767,就重新开始累加。

3 结束语
     文章开始提到的控制阀的两种状态,也可以选用具有保持功能的三位选择开关,这是一种硬件实现方案。当然可以选用本文所述的软件实现方案,殊途同归。但通过软件的方式,却节省了plc输入点的开销,如果plc的输入非常紧张,这是一种行之有效的方法,但若是输入点后还绰绰有余,这样做就有画蛇添足之嫌了。
硬件方案、软件方案,很难说究竟何者是佳方案。正如计算机的发展史,如果硬件非常昂贵,那就通过软件来实现这一功能;如果硬件的成本非常低了,何不充分发挥硬件的功能,这样还可以缩短一下程序代码。plc输入点的问题正是如此,适合的才是佳的。

 近段时间开发一种机器系统,其中有一项功能是将每天的机器工作数目在触摸屏中显示出来,天数要两年;并且只要输入日期,触摸屏上就可以将任意时间的数目进行统计。我自己设计了一个程序,愿与大家分享。如有问题请指正。
  
  画面讲述  
  本系统用的是omron的c的plc,触摸屏用的是pro-face的gp577r。其画面如下图1-a所见。
  图中所示的b1按下后,就可以设置统计日期;设置完后,再按一下b2,就会统计两年内任意日期内的工件数。a1下的是指示数,从1~730,a2下的是年月日,如(030528)指的是03年05月28日。a3即每天的工件数。c1是向上翻页键,c2是向上翻行键,c3是向下翻页键,c4是向下翻行键。
  


  地址分布
  
   触摸屏的系统地址从dm500开始。
   a1下的数字用的是一个触摸屏中的n标签,其功能如图2-a所示。地址是触摸屏的内部地址区域,我用的是ls2000;n标签上有一个运算,从上到下分别是ls2000+1~ls2000+10。
  a2下的数字用的是一个触摸屏中的两位e标签,其功能如图2-b所示。地址是plc的内部地址区域,我用的是dm1000~1001。从上到下分别是dm1000~dm1018。
  a3下的数字用的也是一个触摸屏中的两位e标签,其功能如图2-c所示。地址是plc的内部地址区域,我用的是dm2000~2001。从上到下分别是dm2000~dm2018。
   b1是触摸键,用来设定起始日期和终止日期日期。b2=22915,用来触发统计总的工件数。
  c1~c4用的是一个触摸屏中的t标签,其功能如图2-d所示。地址是触摸屏的内部地址区域,c1=ls50102,c2=ls50103,c3=ls50100,c4=ls50101。
  
  
  触摸屏程序
  
  pro-face的触摸屏有d-bbbbbb editor功能,请大家看以下的程序。
  
   id : 0000
   trigger : bit rising , edge bit address :ls050100
   bbbbula :
   if ([w:ls1000]<=758)
   {[w:ls1000]=[w:ls1000]+2
   }
   endif
   date type : bcd data length : 16 bit
  此程序的是用来向下翻行,即指示值(a1)小于758时,将画面向下翻一行。
   id : 0001
   trigger : bit rising , edge bit address :ls050101
   bbbbula :
   if ([w:ls1000]<=720)
   {[w:ls1000]=[w:ls1000]+40
   }
   endif
   date type : bcd data length : 16 bit
  此程序的是用来向下翻页,即指示值(a1)小于720时,将画面向下翻一页。
   id : 0002
   trigger : bit rising , edge bit address :ls050102
   bbbbula :
   if ([w:ls1000]>=40)
   {[w:ls1000]=[w:ls1000]-40
   }
   endif
   date type : bcd data length : 16 bit
  此程序的是用来向上翻页,即指示值(a1)大于等于40时,将画面向上翻一页。
   id : 0003
   trigger : bit rising , edge bit address :ls050103
   bbbbula :
   if ([w:ls1000]>=2)
   {[w:ls1000]=[w:ls1000]-2
   }
   endif
   date type : bcd data length : 16 bit
  此程序的是用来向上翻行,即指示值(a1)大于等于2时,将画面向上翻一行。
   id : 0004
   trigger : timer fn , timer duration : 1
   bbbbula :
   [w:ls2000]=[w:ls1000]/2
   date type : bcd data length : 16 bit
  此程序的显示指示数a1。
  
  plc程序
  
  [network]
   name="calendar"(本段是将每天的日期转换到触摸屏中)
  [statementlist]
   ld 253.13
   out tr0
   cmp dm0502 hr92 //dm0502是系统的年
   and not 255.06
   ld tr0
   and 049.02
   or ld
   and not tim252
   and not 049.03
   and not 049.04
   out 049.02
   tim 252 #0010
   ld tr0
   mov dm0502 hr92
   cmp dm0503 hr93 //dm0503是系统的月
   and not 255.06
   ld tr0
   and 049.03
   or ld
   and not tim253
   and not 049.04
   out 049.03
   tim 253 #0010
   ld tr0
   mov dm0503 hr93
   cmp dm0504 hr94 //dm0504是系统的日
   and not 255.06
   out 049.04
   ld tr0
   mov dm0504 hr94
   and tim252
   ld tr0
   and tim253
   or ld
   ld tr0
   and 049.04
   or ld
   out tr1
   add #0002 dm0070 dm0070 //dm0070是指针字
   cmp dm0070 #0800
   and 255.05
   ld tr1
   and 255.06
   or ld
   mov #0000 dm0070
   ld tr1
   add dm0070 #2000 dm0076 //间接寻址,dm2000
   add dm0070 #2001 dm0077 //间接寻址,dm2001
   add dm0070 #1000 dm0074 //间接寻址,dm1000
   bset #0000 *dm0076 *dm0077
   mcro 10 dm0502 dm0626 //子程序入口
   xfer #0002 dm0628 *dm0074 //日期写入触摸屏
  
  [network]
   name="count&reset"(本段是程序记数与复位)
  [statementlist]
   ld 253.13
   out tr0
   and 228.10 //触摸屏上清零键
   difu 080.10
   ld tr0
   and 080.10
   bset #0000 dm0066 dm0067 //dm0066~67位计数值
   ld tr0
   and 081.15 //计数角度微分
   and hr64.04 //计数角度位置
   out tr1
   inc dm0066 //工件数的低位
   and 255.06
   inc dm0067 //工件数的高位
   ld tr1
   inc *dm0076 //每天工件数的低位
   and 255.06
   inc *dm0077 //每天工件数的高位
  
  [network]
   name="sum"(本段是程序统计)
  [statementlist]
   ld 253.13
   out tr0
   and 229.15 //触摸屏上统计键
   difu 080.15
   ld tr0
   and 080.15
   set hr70.00 //统计开始标志
   mcro 10 dm0602 dm0606 //触摸屏设定起始日期
   mcro 10 dm0612 dm0616 //触摸屏设定终止日期
   bset #0000 dm0080 dm0083 //指针2
   ld tr0
   and hr70.00
   out tr1
   add dm0080 #2000 dm0086 //间接寻址,dm2000
   add dm0080 #1000 dm0084 //间接寻址,dm1000
   cmpl *dm0084 dm0608
   and 255.05
   ld tr1
   and 255.06
   or ld
   out 048.01
   ld tr1
   cmpl *dm0084 dm0618
   and 255.07
   ld tr1
   and 255.06
   or ld
   out 048.02
   ld tr1
   and 048.01
   and 048.02
   addl *dm0086 dm0081 dm0081
   and 255.04
   inc dm0083
   ld tr1
   add dm0080 #0002 dm0080
   cmp dm0080 #0800
   and 255.05
   ld tr1
   and 255.06
   or ld
   rset hr70.00
   xfer #0003 dm0081 dm0091
  



西门子代理商,西门子模块代理商,西门子一级代理商
展开全文
我们其他产品
我们的新闻
优质商家推荐 拨打电话