admin 管理员组文章数量: 1184232
2024年4月22日发(作者:怎么查看服务的端口号)
ELECTRIC DRIVE 2014 Vo1.44 No.1 电气传动2014年第44卷第1期
数组式编程方法在PLC编程中的应用
时文飞
(中冶南方工程技术有限公司,湖北武汉430223)
摘要:提出了数组式编程方式在PLC编程中的应用方案,通过实例介绍了具体的实现过程,包括数组在
PLC中的建立以及连锁程序的编写策略,利用PLC内部的数据存贮区域建立程序所需的工艺设备数组、状态
数组及控制数组,通过指针寻址功能对这些数组进行逻辑运算实现控制功能。采用数组式编程方法编写的
PLC程序简单可靠、通用性强,能实现复杂的逻辑控制,特别适用于一组控制设备中连锁顺序有变化的场合。
关键词:数组;PLC;顺序控制
中图分类号:TP273 文献标识码:B
Application of Array Method in PLC Programming
SHIWen.fei
(WISRIEngineering&ResearchIncorporationLimited,Wuhan430223,Hubei,China)
Abstract:Put forward a PLC programming method based on the array.Introduced the procedure through an
actual instance,including the array establish in the PLC and the program control strategy.Founds the device array,
status array and control array in the data rea aof PLC.The control function is realized through logic calculation for hese t
arrays via the pointer addressing function.The PLC program based on the array is very simple and universal,can
realize complicated logic contro1.It is suitable for the application especially that linkage sequences are variable.
Key words:array;PLC;sequence control
PLC的顺序控制是应用最广泛的一种工艺控
制方式,另外很多针对顺序控制提出的编程方
备数组、状态数组和控制数组。
1.2.1工艺设备数组
法n ],也仅按照一定的逻辑规则实现程序编制。
本文提出了采用数组式编程方法,减轻了编程工
作量和程序维护难度,程序的可扩展性强。
工艺设备数组中每行代表一个工艺步,每位
代表一个设备在该工艺步中能否运行或是打开,
关闭等,即把所有设备按照预先的启动顺序放在
该数组中,当某设备在数组中的位为1时表示要
对该设备进行控制,为0表示不作处理。
需要指出的是对于正反转类设备,如可逆皮
1顺序控制的数组
1.1数组的概念
数组是把具有相同类型的若干变量按有序
的形式组织起来,这些按序排列的同类数据元素
带、阀门等,可以把此类设备分为2个独立的设备,
在设备数组中占2个独立的位置,这样控制对象就
能单一地控制该设备正转、反转,或开阀、关阀。
1.2.2状态数组
的集合称为数组。当今各个厂家的PLC都具有
很强的数据存储能力,提供了多种类型的数据存
储区域,为实现数组编程提供了基础。
1.2顺序控制的数组分类策略
要实现对设备的顺序控制,首先要知道该设
备在整个时序中的位置,其次要知道设备的状态
(准备好、故障、运行等),这样才能根据逻辑判断
控制设备的启停。因此我们将数组分为工艺设
工艺设备数组只是表明了哪些设备需要控
制,程序执行时要判断设备是不是满足条件及是
否往下执行,因此增设如下的状态数组:1)准备
好数组。数组的结构与工艺设备数组完全一样,
相同位置的数据表示该工艺设备的准备好信息,
为1表示该设备准备好,满足启动条件,为0表示
85
作者简介:时文飞(1981一),男,硕士,工程师,Emai]:10222@wisdri.conr
电气传动2014年第44卷第1期
不满足;2)故障数组。数组的结构与工艺设备数
组完全一样,相同位置的数据表示该工艺设备的
故障信息,为1表示该设备故障,为0表示正常无
故障;3)运行数组。数组的结构与工艺设备数组
完全一样,相同位置的数据表示该工艺设备的运
行信息,为1表示设备运行,为0表示停止。
1.2.3控制数组
程序根据工艺数据及状态数组的逻辑判断,
要对设备进行控制。控制数组分为3种:1)启动
数组。数组的结构与工艺设备数组完全一样,相
同位置的数据表示该工艺设备的启动指令,为1
表示启动该设备,为0表示不动作;2)停止数组。
数组的结构与工艺设备数组完全一样,相同位置
的数据表示该工艺设备的停止指令,为1表示停
止该设备,为0表示不动作;3)急停数组。数组的
结构与工艺设备数组完全一样,相同位置的数据
表示该工艺设备的急停指令,为1表示急停该设
备,为O表示不动作。
综上可知,工艺设备数组、状态数组及控制
数组的结构完全相同,数组中相同位置保存的为
同一设备的不同信息,这样通过几个数组的建
立,所有设备的信息都获得。在PLC中通过指针
寻址功能可以方便对这些数组进行逻辑与、或等
逻辑运算,实现顺序控制功能。
2控制功能的实现
结合具体实例,阐述利用数组编程方法实现
控制功能的过程。图1为某混匀配料模型图。图
1中设有8个混匀配料槽C。 C ,控制要求如下。
+ I + f I I I I
H1051DFH1052DFH1053DFH1054DFHl055DFH1056DFH1057DFH1058DF
’ T ’ ’ t ’ ' t
H1061BW HI ̄2BWHlt ̄i3BW H1064BW H】065BW H1066BW H1067BWH1068BW
H201B C● ‘ ‘ ‘ ‘ I I ^
图1栗混匀配料模型
Fig.1 An batching model
启动顺序从c 槽下的电子皮带称H1068BW
开始,延时启动C 槽下的圆盘给料机H1058DF,
延时启动c 槽下的电子皮带秤H1067BW及
H1057DF,依次类推直至最后启动c 槽下的设
备,这样就可以把槽中的料均匀地布置到皮带
H201BC上。值得注意的是,在每次配料过程中,
并不是所有槽都会用到,所以要根据实际情况选
择哪些槽参与本次配料,没有被选择的槽下的设
86
时文飞:数组式编程方法在PLC编程中的应用
备不动作。根据配料工艺,停止时与启动顺序相
同,系统在启动及运行过程中,设备发生故障停
机,所有设备立即停机。事故状态下设备重新启
动,要具备设备“齐启”功能。
2.1 PLC程序中数组的建立
用西门子公司PLC为例论述数组建立方式,采
用西门子PLC的全局数据块DB作为数组。图2、
图3、图4 ̄JI]为工艺设备数组、故障数组和启动数
组,其它数组的建立与此类似。因为最先启动的设
备为H1068BW,把它放在了数组的最后一位。
口LAD/STL/FBD一[DB30--l’Device”-KGI211… 口回因
0 File l ̄dit Insert PLC Debug View ̄ptions Window Help口回因
口 g-口lol占哂 l一 I I
(fj白I叵 l!‘>!I口目 ?l
Address Name Type Initia【 Comment
0.0 STRUCT
+0.0 H1051DF M BOOL T1 hmi
+01 H1O6lBW B00L TRUE hmi
4-0.2 H1052DF
M BOOL TRUE hmi
+n3 H1062BW 日o0L TRUE hmi
+0.4 H1053DF
_
M B0OL Z (j暮 hmi
+0.5 H1O63BW BOOL T1 hmi
+0.6 H1054DF_M Bo0L TRUE hmi
+o7 H1064BW B0OL TRUE hmi
+1.0 H1055DF
M Bo0L TRUE hmi
+1.1 H1065BW BO0L TRUE hrai
+1.2 H1056DF M BO0L TRUE hmi
+1.3 H1066BW Bo0L TRUE hmi
+1.4 H1057DF M BOOL 11 hmi
+1.5 H1067BW BD0L TRUE hmi
+1.6 H1058DF_M BooL TRUE hrni
+1.7 Hl068BW BOOL TRUE hmi
=
2.0 END STRUCT
图2工艺设备数组
Fig.2 Array of device
口LAD/STI2FBD一[DB36-一fault”~KG1211一 口回区
t2-File Edit_Insert PLC Debug View Qptions Window Help 口回因
口 g 口1 0 l函哂口l— I
c%白I叵 I!<>!I口回l、?
Address Name 聊e Initial Comment
0.0 S下RUCT
+0.O H1051DFM
FAULT BOOL FALSE 故障
+0.1 H1061B FAULT BoOL FALSE 故障
+0.2 H1052DF M
FAULT BOOL FALSE 故障
+0_3 H1062BW FAULT BOOL FALsE 故障
+0.4 H1053DFM
FAULT BOOL FALSE 故障
+o.5 H1063BW
_
FAULT BOOL FALSE 故障
+o.6 H1054DFM
FAULT B0OL FALSE 故障
+0.7 H1064BW
_
FAULT BO0L FALSE 故障
+l_0 H1055DF
M
FAULT BoOL FALSE 故障
+1.1 H1065BW FAULT BooL FALSE 故障
+1.2 H1056DF
M
FAULT BOOL FALSE 故障
+l_3 H1066BW
FAULT Bo0L FALSE 故障
+1.4 H1057DF
M
__
FAULT BOOL FALSE 故障
+1 5 H1067BW
_
FAULT BOOL FALSE 故障
+1.6 H1058DF_M
_
FAULT BOOL FALSE 故障
+1.7 H1068BW
FAULT B0OL R SE 故障
=20 END STRUCT
图3故障数组
Fig.3 Array offault
2.2信号在数组中的传递
1)对于工艺设备数组,一种连锁关系对应一
个设备数组,只需在设备数组中把参与连锁控制
的设备初始值设定为1(TURE)即可。
时文飞:数组式编程方法在PLC编程中的应用
口LAD/STL/FBD一[DB31一’skqttr”一-KGI211… 口回区
12-File Edit
_
Insert PLC Debug View ̄tions Window旦eIp 口固因
口 g-口I o l函哂日I lI
cfI白l叵 l!《>!l口目I、?l
Address Name Type Initial Conl ̄rlt
O.O STRUcT
+o.0 H1051DF
M_start BO0L F札SE 启动
+0.1 H106IB Start B0OL F SE 启动
+0.2 H1052DF
M Start Bo0L FALSE 启动
+0.3 H1062B Start BO0L f.札SE 启动
+0.4 H1053DF
M_start BOOL I.札SE 启动
+0.5 H1063B Start B0OL FALSE 启动
+0.6 H1054DFM
_
Start BoOL FALSE 启动
+0.7 H1064BW
Start BooL FALSE 启动
+1.0 H1055DF_M-start BOOL FALSE 启动
+1.1 H1065B Start BOOL F札SB 启动
+1.2 HlO56DF
M
_
Start Bo0L R SE 启动
+1.3 H1066BW
Start BOoL 队LSE 启动
+1.4 H1057DF_^LStart BOOL f.ALSE 启动
+l 5 H1067B Start BOOL FALSE 启动
+1.6 H1058DF
M
_
Start BO0L FALSE 启动
+1.7 H1068B Start Bo0L R LSE 启动
-
-
2.0 END STRUCT
图4启动数组
Fig.4 Array ofstart
2)对于状态数组和控制数组,为了信号传
递方便,可以在编写输入/输出信号表时,把同类
型的信号放置在一起,并且同种信号的排列顺
序按照工艺设备序列编排,如所有的运行信号
放在连续的IO点上,这样就可以把信号直接移
动或是通过移位等逻辑操作移动到PLC建立好
的数组中,这种方式不但方便快捷,也减轻了
CPU的负担。
2.3编写控制程序
所有数组建立后,可以编写逻辑程序实现设
备控制。控制流程如图5所示。整个控制程序通
过几个独立又相互关联的子程序段构成,判断准
备好程序段,启动程序段,停止程序段及急停程
序段。所有数组的结构都是相同的,数组中相同
位置的数据表示同一设备的不同信息,因此可以
通过间接寻址改变指针的方式对上述的数组数
据进行判断,实现程序功能。图6所示为启动程
序块的控制流程图,其它程序块的实现方法类
似,不再赘述。
图5控制程序控制流程图
Fig.5 Flow process of control program
电气传动2014年第44卷第1期
图6启动程序控制流程图
Fig.6 Flow process of starting pmgram
2.4数组编程的优点
1)程序简单、可靠。只需根据设备的顺序建立
好工艺设备数组、状态数组、控制数组,把外部信号
传送至对应的该设备的状态数组中,并把通过程序
判断生成的控制数组中的信号,发送至单体设备的
控制程序中,即可实现对所有设备的连锁控制。
2)程序通用性强。对于同一组设备如果有
多组时序控制要求时,只需更改工艺设备数组中
的数据即可,图1所示的配料模型,每次配料可能
用到的配料槽不相同,只需在工艺设备数组中把
没有用到的设备在数组中设为0作为一个新的设
备数组即可,其它不用修改。
3 结论
本文介绍了采用数组式编程方法在PLC中
实现顺序控制的方案,提出了通过这些数组编写
连锁程序的策略。数组式编程方法简单可靠,通
用性强,适用于对于一组控制设备中连锁顺序有
变化的场合,控制效果良好。
参考文献
[1]朱玉田,符星球,刘钊.一种简单通用的PLC顺序控制编程
方法[J].测控技术,2008,27(11):7O一72.
[2]廖常初.以转换为中心的PLC顺序控制[J].电气时代,2004,
(1):88—90.
[3]邓玉全.原料场PLC集中流程控制方法探讨[J].冶金自动
化,2010,34(¥1):405—407.
[4]廖常初.s7—300/400PLC应用技术[M].第2版.北京:机械
工业出版社,2008.
收稿日期:2012—02—08
修改稿日期:2013—07—31
87
版权声明:本文标题:数组式编程方法在PLC编程中的应用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713725982a648687.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论