APP下载

一种基于西门子S7-200CPU226CN系列PLC的智能并行控制系统模型*

2018-03-30刘亚文

制造技术与机床 2018年3期
关键词:线程指令程序

刘 麒 刘亚文

(①吉林化工学院信息与控制工程学院,吉林 吉林 132022;②武汉纺织大学机械工程与自动化学院,湖北 武汉 430073)

随着工业控制技术的逐渐发展,工业现场对中大型控制系统的性能要求越来越高,而小型PLC在使用过程中难以充分发挥其控制性能,对于I/O点数多且工艺复杂的工控系统,易出现编程逻辑混乱、缺乏通用性的缺点,而且其存储系统不能被控制器充分利用,这既不利于编程人员对工艺的维护与扩展,也不利于提高系统处理效率。

现有的并行控制系统将系统体系逐级分解为多个相对独立的功能单元,功能单元内容按具体工艺步骤规划[1],而未充分考虑其功能单元即工艺模块间的资源冲突与资源共享,以及工艺模块间的数据通信方式。本文基于S7-200 226CN PLC的CPU工作特性及存储系统特征,结合计算机体系结构思想,构建了基于S7-200的智能并行控制系统模型,在实现复杂控制工艺的同时,不仅保证系统的执行效率,而且建立了查错及纠错的自恢复机制,保证了系统的可靠性及稳定性,为小型PLC实现大型控制系统提供了易于实现的方法。

1 PLC并行控制系统分析

1.1 S7-200PLC控制器工作方式

PLC采用按顺序逻辑反复不停地分阶段扫描处理不同任务的扫描工作方式,如图1所示。在RUN模式时,执行如图1所示的5个阶段,其中输入采样阶段读取输入点的状态到输入映像区;程序执行阶段执行用户程序,进行逻辑运算,得到输出信号的新状态;输出刷新阶段将输出信号写入到输出映像区,每次循环的时间称为扫描周期[2]。由此可将PLC最短扫描周期TS划分为通信时间Tcomm,自诊断时间T自诊断,执行用户程序时间Tcomp,I/O刷新时间TI/O,即:

TS=Tcomm+T自诊断+Tcomp+TI/O

(1)

其中执行用户程序Tcomp为CPU处理单个指令平均时间×指令条数,I/O 刷新时间TI/O=输入采样T1+输出刷新TO。实际的系统可能还需要考虑输入、输出器件的延时,如输出点外接的中间继电器动作时间等。由此可见,扫描周期的长短主要取决于以下几个因素:CPU执行指令的速度;执行每条指令占用的时间;程序中指令条数的多少。指令执行所需的时间与用户程序的长短、指令的种类和CPU执行速度有很大关系。一般来说。一个扫描过程中,故障诊断时间、通信时间、输入采样和输出刷新所占时间较少,执行指令的时间占了绝大部分,在设计程序时可使用智能I/O单元(如快速响应I/O模块)或专门的指令(如立即I/O指令,使用“直接读输入”和“直接写输出”指令)通过越过程序扫描周期的时间限制的方式来解决。在系统构建初期,应考虑程序量对扫描周期的影响,通过扫描周期估算并确定并行模块数,保证系统的响应速度及控制性能。

1.2 PLC存储系统特征

S7-200PLC系统由多种不同的存储器组成的存储系统(memory system)[3],如I、Q、M、S、V、L、T及C&HSC等,这些存储区可分为全局变量和局部变量,通过资源分配使得系统每个模块占有唯一资源区,其中模块内的子工艺线程共享该区的全局变量,子程序各自拥有等量的局部变量,使程序在编写、不断改进及扩大时不至混乱。系统中有OS(系统程序)、OB1(主程序)、SBR(子程序)和INT(中断程序),CPU226CN可包含128个SBR,可以在子程序中嵌套另一个子程序(最大嵌套深度为8级);在程序编写初期,通过工艺划分及工艺动作分解,可将每个动作分解至各个子程序,初步规划工艺执行流程和确定程序量,从而使程序结构的布局有条不紊地进行,模块设计子程序的方法使程序更易管理,具有可移植性及通用性。

1.3 PLC通信组态与远程监控

工业控制中S7-200 PLC与HMI设备、PLC及上位机等之间的通信是通过PPI、MPI、 Profibus、以太网或者光纤等,实现人机界面组态、远程监控及维护[4]。在工业现场通过网络将各生产车间的多工位生产过程连接起来,由上位机及数据库构成网络状态监控层,进行分布式监控与集中管理,易于实现自诊断与自恢复,并为产品信息追溯系统及企业的CIMS系统提供支持。在并行系统构建时创建通信处理模块,使得网络通信与组态功能具有良好的可扩展性。

2 S7-200并行智能控制系统构建

2.1 并行工艺数计算

由于PLC扫描频率极高,一段极微小时间顺序内相关性极小的子任务可看成同一时刻运行,在某一时刻同时运行的任务数量即为并行度[5]。根据CPU 226CN PLC各运算执行速度,按照公式(1)计算并行度n:

(2)

式中:C为不确定影响系数;T自诊断为系统自诊断时间,同型号CPU的T自诊断为固定值;Tcomm为系统通讯时间,如无外设时Tcomm为0。S7-200 226CN CPU执行每条指令时间T:定时器/计数器TT/C为19~33 μs;布尔量运算TBOOL为0.22 μs;字处理TMOVD为38μs;实数运算TDOUBLE为56~230 μs;单精度数运算TSINGLE为25~64 μs;按式(2)估算输入及输出点数达240点,输入脉冲信号宽度均大于100 ms,假定各种运算指令量相当,C≈10,通讯、PLC自诊断时间及TI/O占整个扫描周期时间的1/2时的并行数,算得n的值约为7~19。根据任务将系统进行模块划分,划分为n个功能不同的工艺模块,各模块统一由主程序调用,对于程序扫描顺序无严格要求工业现场,在极微小时间顺序内可看成并行执行,其先后扫描顺序对系统执行效果无影响,在时间上相互重叠,即各模块组成并行系统。

2.2 并行工艺模块划分

结合指令调度思想,为充分发挥系统的性能,必须设法让流水线满负荷工作,这就要研究工艺步骤之间的并行性,按照任务划分并行工艺模块,找出不相关的工艺动作,让他们在工作中重叠并行执行[6]。结合执行机构特点将并行程序的任务分解成若干工艺模块,并依据这些子任务的特点,在其各自执行的时间段内,将任务模块细分为若干顺序执行的工艺步骤。

如图2所示,整个并行程序执行信息的集合表示为序列:E={E0,E1,…,Ei},模块Ei的子工艺线程集合表示为Ei={Ei0,Ei2,…,Eij};Ei0为模块Ei中最先执行的子工艺线程,完成模块初始化的准备工作;Eij为模块Ei中最后执行的子工艺线程,并行模块Ei中各工艺步间在时间上呈串行关系。对于系统E,活动子工艺线程并行执行,构成并行系统;各模块的活动子工艺线程执行“就绪”时,调用控制步CS(其中S标表示子工艺线程的状态字信息,取值为0,1,2,…,j)来改变模块步序S的值,系统依据当前程序执行的模块步序S,决定下一个或多个并行运行的任务,触发相应的子工艺,唤醒“睡眠”中的线程。

2.3 系统资源分配

根据系统任务划分工艺模块,将各存储区按照模块数均衡划分,合理进行资源分配,充分发挥PLC系统资源的独占性与共享性,如图3所示。并行控制系统各模块在系统资源内有唯一的存储区,其子工艺线程与同属一个模块的其他子工艺线程共享模块所拥有的全部资源,以提高系统模块内聚性[7];同时,模块内的子工艺线程Eij又可按照一定工艺顺序轮流使用同一套特定系统资源,即控制步子程序EiCS,使得每个扫描周期内子工艺线程有序执行。各模块间协调作业通过临界交集资源(communication)进行通信与数据共享,完成流水寄存器的任务。

2.4 并行工艺模块间的通信

并行工艺单元间通信是基于PLC内部逻辑来对各平行动作进行控制和导航的,这就需要实时监控存储系统中预先定义的状态标志参数及通信参数,系统模块间通信采用统一数据的通信方法[8],为每个模块分配一个字节地址通信区,Ei模块向Ei-2模块发送请求消息时,将定义的通信数据位及传递的处理结果,打包成数据单元集合,作为通信数据发送Ei-1模块;Ei-1模块收到Ei模块的请求消息,同时获取控制信息,并校验处理结果,校验无误时处理Ei-1模块的请求,处理完成后改变该通信数据位的状态。该通信方式使模块间的通信参数一致,且由于通信参数(通信数据位)状态非0即1,使工艺模块间通信稳定可靠,运算处理效率提高。

3 系统的可靠性和稳定性

PLC控制系统的可靠性直接影响到工业生产的效率与安全,因此提高控制系统可靠性具有十分重要的意义。PLC系统的可靠性通常用平均故障间隔时间(MTBF)来衡量,它表示系统从发生故障进行修理到下一次发生故障的时间间隔的平均值[9]。实际往往从以下两方面考虑:①PLC本身软硬件的可靠性;②所构建控制系统的可靠性。在硬件方面,具有良好的屏蔽及抗干扰措施,如CPU与I/O电路之间采用光电隔离,对电源及I/O电路采用多种形式的滤波,增加故障显示电路等;PLC硬件采用模块式结构,可设计热备系统,一旦工作主机出现故障,热备模块可自动接替其工作[10]。在软件方面,PLC采用周期循环扫描方式,在执行用户程序过程中与外界隔绝,大大减小外界干扰;其用软件取代大量的中间继电器和时间继电器,仅剩与输入和输出有关的少量硬件元件,大幅减少因触点接触不良造成的故障。PLC在软、硬件诸方面的强有力可靠性措施,确保了PLC具有可靠稳定工作的特点。

控制系统构建时,为增强系统模块内聚性及降低模块间的耦合性,为各个模块分配唯一的系统资源,信息屏蔽可有效避免其他模块行为的干扰,增强系统模块的独立性;模块化的系统适应“变化”的能力较强,使得更多的功能在需要时易被插到适当的位置中,因此系统具有良好的扩展性[11],能灵活应对未来可能需要的改进和分期建设的项目。因无法保证系统使用者都精准按照说明书流程操作,在系统测试时进行系列干扰行为,针对可预见的故障,分别采取了避错、查错、纠错和容错手段,如图4所示,通过时间故障检测法与逻辑错误检测法[12],自动侦测系统故障,通过系统制定的控制策略及时自动恢复,使得系统具有自动保护功能和适应内部变化的能力,有效延长其无故障工作时间,增强系统健壮性,真正做到既可靠又稳定。

4 系统应用实例

某厂工业电雷管装配原采用的是传统的半手工半机械化装配方式,装配工艺包括基础木模运输、基础雷管转模、辅模转运、自动激光编码、自动卡腰、自动装配、卡口、成品脱模及收集等工艺[13],其装配工作量大,严重影响生产效率且存在诸多安全隐患。经系统设计并进行彻底改造,系统控制点达112个,检测点达120个,现改用S7-200系列PLC的智能并行控制系统,根据工艺路线进行并行工艺模块划分及资源分配,并行控制各个模块的装配生产工艺,对于设备误动作及人为不良因素造成的故障进行预设判断及安全预警,智能处理并自动恢复,有效防止了产品殉爆,保证了整体设备的安全和工艺动作准确无误。实际应用表明,生产线危险工位操作人数由原23人减少至0人,生产效率由原500~600发/h提升至1 100~1 200发/h,装配产品合格率提高至99.5%,社会效益及经济效益有了显著提升。

5 结语

本文介绍了西门子S7-200CPU226CN系列PLC智能并行控制系统模型构建及具体构建方法,通过PLC软、硬件保护措施及控制系统智能异常排除分析与设计,模块化的并行控制方式,改善了控制复杂时编程条理混乱、程序扩展及维护繁琐的实际问题,确保了并行控制系统的可靠性及稳定性,实现了多任务并行处理功能。系统自应用于工业电雷管自动装配生产线(总I/O数约240个)至今,装配效率及装配成品合格率大幅提高,系统整体运行安全稳定,防错和容错性强,实时预警及保护功能齐全,该控制系统构建方法为PLC工业控制的诸多领域提供了借鉴。

[1]Tang X, Li H J, Chen Y T, et al. Research on multi-task control model of PLC[J]. Advanced Materials Research, 2014, 889-890:1236-1239.

[2] 廖常初. PLC编程及应用[M].北京:机械工业出版社, 2002.

[3]Bin L, Jiong Y, Hua S, et al. Energy-efficient algorithms for distributed storage system based on data storage structure reconfiguration[J]. Journal of Computer Research and Development, 2013, 50(1): 3-18.

[4]苏静明, 洪炎. 基于PLC和组态王的节能控制站远程监控系统研究[J]. 工矿自动化, 2011, 37(2):20-23.

[5]陈国良. 并行计算机体系结构[M]. 北京:高等教育出版社, 2002.

[6]沈绪榜, 刘泽响, 王茹. 计算机体系结构的统一模型[J]. 计算机学报, 2007, 30(5):729-736.

[7]闫昭, 刘磊. 基于数据依赖关系的程序自动并行化方法[J]. 吉林大学学报:理学版, 2010, 48(1):94-98.

[8]马雄波, 韩振宇, 王永章,等. 基于RTX的软PLC多任务系统研究[J]. 组合机床与自动化加工技术, 2007(1):35-40.

[9]张亮. 提高PLC控制系统可靠性的软件设计[J]. 工矿自动化, 2006(6):39-42.

[10]马伯渊, 吕京梅, 张志同. PLC软冗余系统性能分析[J]. 电力自动化设备, 2009, 29(2):98-101.

[11]吴建平, 王正华, 李晓梅. 并行系统可扩性分析研究[J]. 国防科技大学学报, 2001, 23(1):55-58.

[12]孟君. 基于不同冗余结构的PLC系统可靠性与可用性研究[J]. 电子技术应用, 2016, 42(9):80-83.

[13] Li H J, Yan J J, Yan L, et al. Application of Man-Machine Isolation Automation Assembly for Industrial Electric Detonator[J]. Applied Mechanics & Materials, 2014, 716/717:1522-1526.

猜你喜欢

线程指令程序
基于C#线程实验探究
《单一形状固定循环指令G90车外圆仿真》教案设计
基于国产化环境的线程池模型研究与实现
线程池调度对服务器性能影响的研究*
试论我国未决羁押程序的立法完善
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
创卫暗访程序有待改进
中断与跳转操作对指令串的影响
一种基于滑窗的余度指令判别算法