编辑: 元素吧里的召唤 | 2019-10-16 |
03 -
14 作者简介 :叶真(1955 - ) ,女 ,副教授.
文章编号 :1671 - 7333(2007)
02 -
0083 -
04 步进电机的 PLC 控制梯形图程序设计 叶真(上海应用技术学院 机械与自动化工程学院 ,上海 200235) 摘要 : 可编程序控制器(PLC) 对步进电机的控制程序 ,可以有多种设计方法.本文提出了以 SIEMENS SIMATIC S7 -
200 的 "移位指令" 作为步进控制梯形图程序的主体以及将程序模块 化的设计思路和方法 ,得到的梯形图程序简捷、 清晰、 柔性 ,调试结果完全满足控制要求. 关键词 : 步进电机 ;
PLC ;
梯形图 ;
移位指令 ;
模块化 中图分类号 : TP
271 文献标识码 :A Design of PLC Ladder Controlling on the Stepping Motor Y E Zhen (School of Mechanical and Automation Engineering , Shanghai Institute of Technology , Shanghai
200235 , China) Abstract : The PLC program controlling on the stepping motor can be designed by diverse means. The paper puts forward the design thinking and method. The ladder program is programmed with"SHIFT"instruc2 tion of SIMATIC S7 -
200 as the keystone of controlling step - by - step and by means of program modu2 larization. Thus the ladder is compact ,clear and flexible , and quite meets the control requirements. Key words : stepping motor ;
PLC ;
ladder ;
SHIFT ;
modularization 在可编程序控制器 ( PLC) 对各种工业、 物流 等生产流水线的控制中 ,一个常见的环节 ,就是对 步进电机的控制.PLC 对步进电机的控制程序 设计可有多种方法 ,所选应用指令的不同、 程序设 计思路的不同 ,可使程序的长短、 复杂程度、 柔性 化程度有较大的差别.本文以三相六拍步进电机 控制 为例,采用SIEMENS S7 -
200 PLC 的SIMATIC 指令系统 ,介绍以 "移位指令" 为步进控 制程序主体的设计思路和方法 ,并分析其相对于 其他应用指令及编程方法之长处.
1 程序设计的基本思路 在进行程序设计时 ,首先应明确对象的具体 控制要求.由于 CPU 对程序的串行扫描工作方 式 ,会造成输入/ 输出的滞后 ,而由扫描方式引起 的滞后时间 ,最长可达两个多扫描周期[1 ] ,程序 越长 ,这种滞后越明显 ,则控制精度就越低.因此,在实现控制要求的基础上 ,应使程序尽量简 捷、 紧凑.另一方面 ,同一个控制对象 ,根据生产 的工艺流程的不同 ,控制要求或控制时序会发生 变化 ,此时 ,要求程序修改方便、 简单 ,即要求程序 有较好的柔性.以SIMATIC 移位指令为步进控 制的主体进行程序设计 ,可较好地满足上述设计 要求. 1.
1 三相六拍步进电机的控制要求 对三相六拍步进电机的控制 ,主要为两个方 第7卷第2期2007 年6月上海应用技术学院学报JOURNAL OF SHANGHAI INSTITUTE OF TECHNOLOGY Vol.
7 No.
2 Jun.
2007 面 :三相绕组的接通与断开顺序控制以及步进速 度的控制.即 :正转顺序 : A →AB →B →B C →C →CA →A ;
反转顺序 : A →A C →C →CB →B → BA →A 以及每个步距角 (每个箭头) 的行进速 度.围绕这两个主要方面 ,可提出具体的控制要 求如下 : (1) 可正转起动或反转起动 ;
(2) 运行过程中 ,正反转可随时不停机切换 ;
(3) 步进速度可分为高速(0.
05 s) 、 中速(0.
1 s) 、 低速(0.
5 s) 三档 ,并可随时手控变速 ;
(4) 停止时 ,应对移位寄存器清零 ,使每次起 动均从 A 相开始. 1.
2 控制程序框图及软件模块 由上述具体控制要求 ,可作出步进电机在起 动运行时的程序框图 ,如图
1 所示.以工作框图 为基本依据 ,结合考虑控制的具体要求 ,首先可将 梯形图程序分成
4 个模块进行编程 ,即模块
1 :步 进速度选择 ;
模块
2 :起动、 停止和清零 ;
模块
3 :移 位步进控制功能模块 ;
模块
4 : A 、 B 、 C 三相绕组 对象控制.然后 ,将各模块进行连接 ,最后经过调 试、 完善、 实现控制要求. 图1步进电机控制程序框图
2 梯形图程序设计 2.
1 输入/ 输出编址 控制步进电机的各输入开关及控制 A 、 B 、 C 三相绕组工作的输出端在 PLC 中的 I/ O 编址如 表1所示. 表1输入/ 输出编址 输入端 输出端 I0.
0 步进电机正转起动按钮 Q0.
0 控制 A 相绕组 I0.
1 步进电机反转起动按钮 Q0.
1 控制 B 相绕组 I0.
2 停止及清零按钮 Q0.
2 控制 C 相绕组 I1.
0 低速开关 I1.
1 中速开关 I1.
2 高速开关 2.
2 状态真值表 采用移位指令进行步进控制.首先指定移位 寄存器 MB0 (8 位) ,按照三相六拍的步进顺序 ,移 位寄存器的初值见表 2. 表2移位寄存器初值
1 M0.
7 M0.
6 M0.
5 M0.
4 M0.
3 M0.
2 M0.
1 M0.
0 0
0 1
0 0
0 0
0 每右移
1 位 ,电机前进一个步距角(一拍) ,完 成六拍后重新赋初值.其中 M0.
6 和M0.
7 始终 为"0" .据此 ,可作出移位寄存器输出状态及步进 电机正反转绕组的状态真值表 ,如表
3 所示.从 而得出三相绕组的控制逻辑关系式 : 正转时 A 相Q0.
0 = M0.
5 + M0.
4 + M0.
0 B 相Q0.
1 = M0.
4 + M0.
3 + M0.
2 C 相Q0.
2 = M0.
2 + M0.
1 + M0.
0 反转时 A 相Q0.
0 = M0.
5 + M0.
4 + M0.
0 B 相Q0.
1 = M0.
2 + M0.
1 + M0.
0 C 相Q0.
2 = M0.
4 + M0.
3 + M0.
2 表3移位寄存器输出状态及步进电机绕组状态真值表[ 2] 移位寄存器 MB0 正转 反转 M0.
5 M0.
4 M0.
3 M0.
2 M0.
1 M0.
0 A B C A B C
0 0
0 0
0 0
0 0
0 0
0 0
1 0
0 0
0 0
1 0
0 1
0 0
0 1
0 0
0 0
1 1
0 1
0 1
0 0
1 0
0 0
0 1
0 1
0 1
0 0
0 1
0 0
0 1
1 0
1 1
0 0
0 0
1 0
0 0
1 0
1 0
0 0
0 0
0 1
1 0
1 1
1 0
4 8 上海应用技术学院学报 第7卷2.
3 梯形图程序 根据程序模块及三相绕组的控制逻辑关系 , 即可编写出梯形图控制程序 ,如图
2 所示.其中 Network1~3 对应模块
1 ;
Network4~6 对应模块
2 ;
Network7~12 对应模块
3 ;
Network13~16 对 应模块 4. 必须注意 ,在进行各模块的连接时 ,应充分考 虑各模块功能之间的联锁关系、 CPU 串行扫描的 工作方式对各指令执行结果的影响以及可随时进 行正反转切换和步进变速的要求.经过调试、 运行,该程序完全满足控制要求. 图2步进电机梯形图控制程序
3 程序的分析与比较 3.
1 简捷性 如前所述 ,步进电机的控制程序设计 ,可有多 种方 法,比如,用SIMATIC 顺控指令(SCR、 SCRT、 SCRE) 编程 ,程序没有复杂的逻辑关系 ,设 计比较方便 ,但由于每一次步进切换都须经过对 状态的开始、 转换和结束处理 ,会令程序的网络数 大大增加[3 ] ;
或可用许多的定时器实现各步距角 的时间控制 ,以及变速时间间隔的设置等 ,则程序 冗长、 松散 ;
也可以用定时器结合比较指令控制各 步进时段 ,但会使各网络变得复杂 ,彼此之间的逻 辑关系不甚清晰 ,程序也会比较长.比如 ,仅作两 档转速控制 ,程序便需约
20 个网络 ,若再以加法、 减法指令配合对两档转速进行调速 ,则程序还要 增加 3~4 个网络 ;
有的程序甚至可达约
30 个网 络 ,而以移位指令作为步进控制的主体编程 ,获得 的程序简捷、 清晰 ,仅需
15 个网络即可实现 ,且程 序模块间的逻辑关系十分明确. 3.
2 柔性化 3. 2.
1 步进速度的变化 以移位指令作为步进控制主体编程的另一长 处 ,就是程序的柔性好 ,非常容易修改.在1.
1 中 提到 :对步进电机的控制主要是两个方面 ,三相绕 组接通、 断开的顺序控制和步进速度的控制.前 者一般不变 ,而后者却可多变. 比如 ,本文例子中 ,如果要求电机在运行过程 中步进速度可任意加、 减 ,而不是仅有三档速度 , 此时任何变速实际上只是改变移位指令的执行速 度 ,即改变移位脉冲的发生周期 (VW100) ,其他 所有网络均可不变.所以 ,只需将程序模块
1 "步 进速度选择 (Network1~3) "作如下修改便可实 现 ,如图
3 所示. 图3程序模块
1 的修改
5 8 第2期叶真:步进电机的 PLC 控制梯形图程序设计 其中 ,原低速开关 I1.
0 变为步进基速赋值开 关(Network1) ;
原中速开关 I1.
1 变为减速开关 , 每次 I1.
1 从"0" → "1" ,步进速度减慢 0. 01s ,即以 加法指令实现转过每步距角所需时间增加 0. 01s (Network2) ;
原高速开关 I1.
2 变为加速开关 ,每次I1.
2 从"0" → "1" ,经减法指令使转过每步距角 所需时间减少 0. 01s (Network3) ,每次加速或减 速的幅度可按需要任意修改设定. 而如果用其他方法编程 ,比如以定时器、 比较指 令等编程 ,则每变化一次速度 ,所有的定时器和比较 时段都须作出相应的调整 ,为程序修改带来不便. 3. 2.
2 从三相六拍到五相十拍 如果控制对象为五相十拍的步进电动机 ,则依 据三相六拍的编程思路 ,只需在模块
3 中 ,将
8 位 (字节) 移位寄存器改为
16 位(字) 移位寄存器.比如:取寄存器 MW3 = MB3 + MB4 ,其初值见表 4. 表4移位寄存器初值
2 M3.
7 M3.
6 M3.
5 M3.
4 M3.
3 M3.
2 M3.
1 M3.
0 M4.
7 M4.
6 M4.
5 M4.
4 M4.
3 M4.
2 M4.
1 M4.
0 0
0 0
0 0
0 1
0 0
0 0
0 0
0 0
0 移位指令相应由 "SHR - B" 修改为 "SHR - W" ,然后根据五相十拍步进电动机的工作顺序 : 正转 ABC →BC →BCD →CD →CDE → DE →DEA →EA →EAB →AB →ABC 反转 ABC →BA →BAE →AE →AED → ED →EDC →DC →DCB →CB →CBA 作出移位寄存器输出状态及步进电机绕组状态真 值表 ,得出五相绕组控制逻辑关系式 ,最后 ,在模 块4(对象控制) 中增加控制对象 D、 E 和修改控制 逻辑关系 ,便可非常方便地完成五相十拍的梯形 图控制程序. 另外 ,需注意 ,在修改程序时 ,图2中Net2 work6 和Network7 的传送指令亦应相应地改为 字传送指令 "MOV - W (MW3) " 以及 Network12 计数器指令的 "PT" 相应改为 10.
4 结语(1) 在进行 PLC 梯形图控制程序设计时 ,首 先应十分明确现场所有对象及其控制要求 ,在满 足控制要求的基础上 ,应尽可能使程序简捷、 清晰. (2) 在对步进电机进行控制时 ,以移位指令 作为步进控制的主体编程 ,不仅可使程序简捷、 清晰,并具有较好的柔性. (3) 利用本文所介绍的三相六拍步进电机梯 形图控制程序的设计方法 ,可以方便地得出五相 十拍步进电机的控制程序 ,亦可将 "程序模块化" 的设计思路应用于其他的控制程序设计中. 参考文献 : [1 ] 廖常初. PLC 编程及应用[ M]. 北京 :机械工业出版 社,2004. [2 ] 郁汉琪. 机床电气及可编程序控制器实验、 课程设 计指导书[ M]. 北京 :高等教育出版社 ,2001. [3 ] 汤以范. 电气与可编程序控制器技术[ M ]. 北京 :机 械工业出版社 ,2004. [4 ] 宋伯生. PLC 顺序控制程序工程方法[J ]. 电气时代 ,
2006 ,(9) :134 - 137.
6 8 上海应用技术学院学报 第7卷