浔之漫智控技术-西门子PLC代理商
西门子PLC模块 , 变频器 , 触摸屏 , 交换机
西门子6ES7223-1BM22-0XA8库存优势

西门子6ES7223-1BM22-0XA8库存优势

可编程控制器是集计算机技术、通讯技术、自动控制技术为一体的工业控制装置。对于初学者来说掌握了plc基本原理,熟悉常用的编程方法,在进行简单系统编程时尚可以运用自如,但对较为复杂的控制系统设计往往力不从心,要想在 PLC 应用方面得心应手,学习者除了要建立正确的学习方法,深入学习plc编程技巧,重要的是相关知识的学习。下面从六个方面谈谈我的教学心得。

一、 多收集程序范例、增加编程经验

      在PLC的编程方法中,经验法一直受到许多从业者的青睐,并且在经验设计法中资料收集显得尤为重要。首先收集典型程序样例,程序好有较完整的组成部分:控制任务、I / O 分配、硬件接线图、完整的程序及注释。其次要读懂程序,从而分解出程序中用于完成不同任务的组成部分,对于各组成部分中独立完成某一特定功能的子程序或者中断程序应及时收藏到程序库。以便在以后的编程过程中碰到实现类似控制任务时,节约程序设计时间、提高程序调试成功率。再次还需要记录程序闪光点,诸如编程者巧妙的思路、程序结构、应用指令的使用。尤其是应用指令的使用,能够大大的缩短程序长度,减少内存容量,降低系统成本。后对程序做功能扩展性的设计、调试,并对全过程加以详细记录、再加以总结。通过以上过程就能够有效消化这些程序范例,使其融入到自己以后的编程过程中。经过一段时间的资料收集、理解、消化后,逐步确立适合自己的编程方法。

二、 熟练使用软件包

     设计者应熟读编程手册、熟练程序的编辑技巧,使得自己的设计方案得以展现。设计好的程序能否满足控制任务,就必须进行调试,传统的调试方式离不开编程控制器 CPU,必要时还需要另外准备输入输出模块、特殊功能模块和外部机器等。仿真软件 可提供一个虚拟的实验平台。能够实现不在线时的调试。不在线调试功能内包括软元件的监视测试、外部机器的I/O的模拟操作等。对于个人学习来说,没有实验条件,仿真软件能够在个人计算机上进行顺控程序的开发和调试。使用者通过程序不断的仿真调试,慢慢领会程序设计心得,从而增加编程经验 。

三、 特殊功能模块

      在学习过程中,大部分学生将学习的重心放在了软件编程上, 而现代工业控制给PLC 提出了许多新的课题,如果用通用 I/O 模块来解决,在硬件方面费用太高,在软件方面编程相当麻烦,某些控制任务甚至无法用通用 I/O 模块来完成。因此,学习PLC的特殊功能模块显得尤为重要。这些特殊功能模块有模拟量输入输出模块、高速计数模块和运动控制模块等。这些特殊功能模块 PLC厂家都给出了详细的使用手册,用户可以通过仔细研读使用手册来完成特殊功能的实现,使得软件编程简化,降低了经济成本。

四、 人机界面

      连接可编程序控制器,利用显示屏显示,通过输入单元(如触摸屏、键盘、鼠标等)写入工作参数或输入操作命令,实现人与机器信息交互的数字设备称为人机界面,俗称触摸屏。触摸屏以其易于使用、坚固耐用、反应速度快、节省空间等优点,使得系统设计师们越来越多的感到使用触摸屏的确具有相当大的优越性。触摸屏由硬件和软件两部分组成。利用软件可以完成用户界面的设计,结合PLC的程序设计极大的简化了计算机的使用,即使是对计算机一无所知的人,对不懂 PLC 程序编程的操作人员,也能够按控制要求设置控制系统参数、生产配方存储、设备生产数据记录等操作。触摸屏的学习可以按如下的步骤进行。首先针对某一系列触摸屏仔细阅读其画面设计手册进行用户画面设计;接着设计触摸屏画面操作实现对应的 PLC 程序;后打开触摸屏、P L C 编程仿真软件进行仿真调试。

五、 掌握三种流派主流产品

      目前,世界上有 200 多个厂家生产 PLC。大体可以按地域分成主要的三个流派:一个流派是日本产品,以三菱 FX 系列小型 PLC 为代表; 一个流派是美国产品, 以 A B 公司的PLC 系列中型 PLC 为代表;还有一个流派是欧洲产品,德国西门子的 S7 系列大型 PLC 为代表。不同型号的 PLC 产品具有不同的特色,不仅表现在特殊复杂的功能等方面,就是在编程语言、程序的组织等方面也存在着较大的差异。掌握所有的 P L C 产品显然不现实,也没有必要。在熟练掌握一种PLC产品的基础上,有意识地在其他主要流派中选择有代表性的产品,采用对比的学习方法进行相对深入的研究。这样在以后的工作、学习和开发研究中遇到其它的机型时,就能够做到触类旁通了。

一、时间继电器:
TON 使能=1计数,计数到设定值时(一直计数到32767),定时器位=1。使能=0复位(定时器位=0)。
TOF 使能=1,定时器位=1,计数器复位(清零)。使能由1到0负跳变,计数器开始计数,到设定值时(停止计数),定时器位=0。如下图:
  
图1:使能=1时,TOF(T38)的触点动作图
 
图2:使能断开后,计数到设定值后,TOF(T38)的触点动作图(其中T38常开触点是在使能由1到0负跳变后计数器计时到设定值后变为0的)
TONR 使能=1,计数器开始计数,计数到设定值时,计数器位=1。使能断开,计数器停止计数,计数器位仍为1,使能位再为1时,计数器在原来的计数基础上计数。
以上三种计数器可以通过复位指令复位。
正交计数器 A相超前B相90度,增计数
      B相超前A相90度,减计数
当要改变计数方向时(增计数或减计数),只要A相和B相的接线交换一下就可以了。
二、译码指令和编码指令:
译码指令和编码指令执行结果如图所示:
  
DECO是将VW2000的第十位置零(为十进制的1024),ENCO输入IN低位为1的是第3位,把3写入VB10(二进制11)。
三、填表指令(ATT)
S7-200填表指令(ATT)的使能端(EN)必须使用一个上升沿或下降沿指令(即在下图的I0.1后加一个上升沿或下降沿),若单纯使用一个常开触点,就会出现以下错误:



这一点在编程手册中也没有说明,需要注意。其他的表格指令也同样。
四、数据转换指令
使用数据转换指令时,一定要注意数据的范围,数据范围大的转换为数据范围小的发注意不要超过范围。如下图所示为数据的大小及其范围。


(1)BCD码转化为整数(BCD_I)
 关于什么是BCD码,请参看《关于BCD码》。
BCD码转化为整数,我是这样理解的:把BCD码的数值看成为十进制数,然后把BCD到整数的转化看成是十进制数到十六进制数的转化。如下图所示,BCD码为54,转化为整数后为36。


 整数转化为BCD码(I_BCD)则正好相反,看成是十六进制到十进制的转化。
(2)整数转化为双整数(I_DI)                    
此问题需要注意的是:整数转化为双整数后,符号位被扩展,因为整数的精度小于双整数的精度,转化后,双整数除了表示整数的数值所占的位外,其余空位用符号位填充。(信息来源:http://www.diangon.com/)如整数45转化为双整数后,基二进制表示为:2#0000_0000_0000_0000_0000_0000_0010_1101,而整数-45转化为双整数后则为:2#1111_1111_1111_1111_1111_1111_1101_0011。
五、不要重复使用plc输出线圈
  基本逻辑指令中常开接点和常闭接点,作为使能的条件,在语法上和实际编程中都可以无限次的重复使用。
  PLC输出线圈,作为驱动元件,在语法上是可以无限次的使用。但在实际编程中是不应该的,应该避免使用的。因为,在重复使用的输出线圈中只有程序中后一个是有效的,其它都是无效的。输出线圈具有后优先权。
如图1和2所示。


图1:输出线路未重复使用   图2:输出线路未重复使用
  1所示,输出线圈Q0.0是单一使用,表示I0.0和I0.1两个常开接点中任何一个闭合,输出线圈都得电输出。
  图2所示,输出线圈Q0.0是重复使用,在网络1和网络2中重复使用两次,目的和图1所示一样,要求I0.0和I0.1两个常开接点中任何一个闭合,输出线圈得电输出。
  首先需要肯定是图2所示的程序在语法上是完全正确的。但是,Q0.0重复使用的输出线圈中,真正有效的是网络2,网络1是多余的、无效的。也就是说,I0.0无论是闭合还是断开,都对Q0.0不起作用,Q0.0是否得电是由I0.1决定的。
  这是因为PLC在一个扫描周期中,PLC输出点的刷新是在程序执行完毕后执行的,在一个扫描周期中,即使I0.0闭
合,I0.1断开,在PLC程序执行网络1时,输出点Q0.0映像存储器为1,在执行网络2时,输出点Q0.0映像存储器又变为0。程序执行完毕,PLC输出点才执行刷新,终输出点Q0.0失电不输出。同理,在一个扫描周期中,I0.0断开,I0.1闭合,输出点Q0.0映像存储器终为1,在PLC输出点执行刷新时,输出点得电输出。因此,图2所示的程序中,对Q0.0起作用的只是I0.1。
  因此,在plc编程时,重复使用数出线圈。尽管在语法上是正确的,但是应该避免使用的。
  几种置位、复位的方法和比较
位置位、复位操作方法上,有好几种方法,可以直接采用置位、复位指令,也可以采用数据传送指令、表格填充指令,甚至可以采用移位循环指令。
这几种方法在具体运用时,也要根据情况而定。下面用一个范例来讲解他们的不同之处。要求对Q0.0~0.7、Q1.0~1.7十六位输出进行置位、复位。


图 几种置位、复位的方法
在以上几种方法中,除移位循环指令外,其他指令比较好理解。
移位循环指令的方法,置位是对16#FFFF十六位常数左循环16位,送入输出字QW0(由Q0.0~0.7、Q1.0~1.7组成),无论16#FFFF如何循环,还是16#FFFF,16位输出。复位采用对QW0一次扫描周期一次执行16位左移位指令,将QW0中的数据全部移出(如果是带符号位的字,连符号位也移出),输出复位。
在上面的方法中,直接采用置位、复位的方法不仅可以对字节、字、双字中的位进行置位、复位操作,也可以对不成字节、字、双字的位进行操作。而数据传送指令、移位循环指令、填充指令只能对字节、字、双字中的位进行置位、复位操作,其中填充指令还只能对字操作。
比如单单对Q0.0~0.6七个位输出进行置位、复位,采用数据传送指令、移位循环指令、填充指令是很难实现的,此时只有采用直接置位、复位指令的方法。

Step 7系统中使用CFC编程时,通过编译CFC系统将自动生成所需的程序代码。但为了防止CPU故障情况下停机,则需要手动在Blocks文件夹中添加错误处理OB(例如OB86等)。但重新编译CFC后,这些手动添加的OB则会被系统删除。
如何能让系统自动生成这些错误处理的OB呢?本文将通过如下的简单实例介绍具体的组态过程。

1. 打开项目,在Blocks文件夹中右键插入一个FB



图 1 插入FB块

2. 定义FB块的块号及符号名,避免和项目中实际使用的FB冲突。


图 2 定义FB块号

3. 切换到属性页面,加入属性S7_tasklist属性,值(Value)设置为OB80,OB81,OB82,OB83,OB84,OB85,OB86,OB88,OB121,OB122。各OB之间通过逗号隔开。点击OK关闭该功能块的属性定义对话框。(注意标点符号不能使用中文的全角标点符号)


图 3 定义功能块的S7_tasklist属性

4. 双击打开该功能块,任意定义一个输入管脚,如下图所示。



图 4 任意定义该功能的管脚

5. 任意打开一个CFC,并在CFC中调用该功能块即可。



图 5 任意CFC中调用该功能块

6. 编译CFC后,系统将会根据上述定义自动生成相应的错误处理OB,防止相应错误发生时CPU停机。



图 6 CFC编译后将自动生成相应OB

注:使用PCS 7进行程序编写时,无需按照上述方面系统即可自动生成所需的OB


展开全文
优质商家推荐 拨打电话