昭通西门子S7-200代理商
昭通西门子S7-200代理商
PLC、定时、计时器、扫描周期、周期中断 PLC编程中构造定时器的几种方法 汪东 鄂钢集团公司高速线材厂机动科
在现代工业现场控制中,PLC作为控制系统的重要组成部分,起着的作用。现代PLC的功能不仅局限于简单的逻辑运算,而且具备了定时、计数、数值计算、中断处理、网络配置等多种强大的功能,使之应用于工业现场时更能发挥其作用。作为PLC重要功能之一的定时,在PLC程序中,可以进行时序构造、等待响应、人为制造中断、产生时间脉冲等多种应用,是PLC编程中不可或缺的重要手段。在PLC编程中构造定时器常用的方法是使用PLC内部的计时器资源,另外还可以利用其扫描周期和周期性的中断来构造定时器,下面将以上三种方法进行介绍。
一. 计时器定时
这种方式是应用普遍也是便捷的方式,广泛地应用于PLC程序之中。各种厂家及型号的PLC,在其软件内部都提供有限的计时器资源。当条件满足时,计时器启动,根据计时器的类型及所定时间的长度执行。以SIEMENS公司的S7-400系列PLC为例,其提供的计时器(TIMER)资源类型有:S_ODT(导通延时)、S_ODTS(导通同步延时)、S_OFFDTS(关断同步延时)、S_PULSE(脉冲延时)、S_PEXT(扩展脉冲延时)等五种。各种计时器都有自己不同的通断特性,例如S_ODT(导通延时)的通断特性如图1所示。这五种计时器资源可以单独
使用,也可以任意组合,满足各种工程需要。这种计时器方式大的特点是方法简单、易于操作,但其也有一定的局限性,主要表现在占用过多的系统资源,并且各种PLC对计时器个数有一定限制,以S7-400系列PLC来说,允许系统使用的计时器为512个。所以在一些大型的项目中,会出现不够用的情况;即使够用,也会因为占用过多资源而使扫描周期变长,对于精度要求比较高的系统,会有一定影响。
二. 扫描周期累加编程定时
所周知,PLC执行程序的工作方式就是扫描,而CPU对所有程序的一个遍历所经过的时间就是一个扫描周期。对于PLC来说,每个扫描周期会因为程序长度、程序中信号和中断的不同而不同。虽然这样,但扫描周期毕竟还是和CPU内部时钟保持一定的统一性,是内部时钟外在的一种时间反应。现代工业越来越智能化的,扫描周期不再只是一项内部指标,更多的PLC已经将其作为一项基本的参数,提供给用户使用。所以我们可以建立一种构造定时的思路:将扫描周期累加起来,如果达到我们需要定时的长度,就产生中断,执行我们需要的步骤。
还是以S7-400系列PLC为例,在软件编制过程中,OB1(Program Cycle Organization Block)是一个基本的程序模块,它是CPU扫描的主程序,其它程序被它调用。OB1有一个模块内的变量表,变量表中有一个临时变量(temp)为:OB1_PREV_CYCLE,它里面所放的数据为前一次扫描周期的毫秒(ms)数,是整型(Integer)数据。因为是临时变量,所以每个扫描周期内存放的数据都在变化。因为OB1的变量表中没有静态变量类型,所以不能直接在OB1中直接进行累加,我们可以借助一个具有静态变量的FB(Function Block)程序模块来编制累加程序,在OB1中调用FB,并通过接口将OB_PREV_CYCLE做为IN参数输入给FB,其OB1程序执行如图2。在FB中,如果以100ms为一个单位,从接口中读取OB1提供的前一个扫描周期的数值参数OB1_PREV_CYCLE,将其
赋值给FB自身的IN参数,并进行累加,再通过一些中间量的转换、计算,输出以100ms为一个单位的单位个数做为OUT接口,供其它程序使用。其程序流程图及I/O参数如图3所示。为了方便其它程序更多地调用此项功能,以及实现多种延时方式(如ON延时、OFF延时、PULSE延时等),可以再做一些FC(Function)。选择ON延时为例,用户使能后,将FB输出接口中的参数值保存起来做为初值,在后续的扫描过程中,将当前值与初值相减计算出差值,后将用户设置的定时数与差值进行比较,满足条件即可执行用户命令。如果仍以100msec为定时单位,其程序流程图如图4所示。
在使用中,用户可以直接调用FC块,填入相应的参数。FC的I/O接口参数
表1 FC的I/O接口参数
如表1所示(如果用户需要使用OFF延时,或者PULSE延时,用户可以根据要求自行编制相应程序,这里只给出ON延时示例)。
这一种实现定时功能的方式,没有直接的功能可以用,需要用户自行编程实现。虽然较上一种方式复杂,但对于一个大的工程来说,理论上可以无限次的调用,并且由于程序并不复杂,不会占用系统过多资源,使系统的扫描更加迅速。
三.周期中断累加定时
中断是指CPU在执行扫描程序时,满足了某种条件或发生了某种事件,而暂停扫描的顺序,执行该条件或事件的相关程序的一个过程。在PLC中,中断的类型多种多样,有用户为程序执行设置的中断,有CPU为响应外部输入输出设备产生的中断,有系统运行到达某一时刻点产生的中断,也有系统周期性的中断等等。对于PLC中时间周期性的中断,就可以利用其时间的周期性来制造定时功能。
同样,以S7-400系列PLC为例,系统为用户提供了从OB30到OB38等9种时间周期中断,这些周期中断OB块不受扫描周期的约束和影响,只按照各自
同样,以S7-400系列PLC为例,系统为用户提供了从OB30到OB38等9种时间周期中断,这些周期中断OB块不受扫描周期的约束和影响,只按照各自
的周期时间属性和优先级,每一个周期扫描并执行一遍其内部的程序,其各自的中断间隔时间和优先级见表2。为了方便编程,用户可以取10ms、100ms、1s为时间单位,使用OB38、OB35、OB32。这种定时的构造方法的主要思想是,构造一个FB块在OB块中调用,利用时间周期中断OB块的周期执行性,每一个周期进行一次累加,累加值做为接口提供给构造ON延时、OFF延时或者PULSE延时的FC块使用。OB块的执行过程如图5所示。
周期中断FB块的主要编程思想是:通过与OB块的参数接口读取OB_Number参数做为Flag,并对Flag做相应的判断(Flag=32?or Flag=35?or Flag=38?),如果条件满足,则在相应的条件下做累加运算,并通过自己的背景数据块输出Counter_1s、Counter_100ms、Counter_10ms等参数,供FC块使用。FB块分别在OB32、OB35、OB38中调用,接受它们提供的参数。FB块的流程图如图6所示。
还有另一种方法是:FB只在OB38中调用,根据10ms、100ms、1s存在十进制倍数的关系,在FB中添加编程,对Counter_10ms进行除以10后取整或除以100取整,得到Counter_100ms和Counter_1s。
FC块的构造同上种方法基本一样,接受了三个累加值之后,根据用户需要编程实现选择使用哪一种时间等级,其后步骤与上种方法相同,这里不再复述,也不给出流程图了。
这种实现定时功能的方法具有上一种方法的全部优点,并且较上一种方法更容易实现,编程更为简单,不用累加后取整。但并不是所有的PLC都提供周期中断供用户使用,这跟各厂家产品有关,一般情况下只有一些工程上使用的具有复杂控制功能的PLC会提供,而一些小型PLC供用户使用的资源相对较少,不提供此项功能,因此这种方法使用上有一定的局限性。
四.总结
以上介绍了在PLC中实现定时功能的三种方法,用户可以根据实际情况,具体、灵活地选择应用。以上的流程图中也只给出了主要编程思路的框架,用户可以根据自己的需要添加程序。PLC中实现定时的方法很多,用户可以根据产品所提供的功能,多角度分析看待问题,使其资源得到充分的利用。
化工区乙烯装置采用的是Honeywell TDC3000 DCS系统,这牵扯到要与许多PLC的通讯问题。因为在生产中操作人员要通过DCS的操作界面来了解所有系统的运行状况,这其中首当其冲的就是PLC,它应用在许多设备中,比如压缩机、膨胀机等。下面要涉及到就是几种基于Honeywell TDC3000的通讯方式:
一、 DCS与PLC通讯的三种方式:
1.1 LCN网络通过Hiway Gataway 连接到Data Hiway Port,具体如图:
1.2 LCN网络通过EPLCG(冗余)连接到各PLC,如图:
以上两种连接方法适合于较大规模的PLC通讯应用,具体的实现细节参照Honeywell详细介绍。而下面主要涉及的则是较小规模应用的通讯方式SI(Serial Interface)串行接口通讯方式。
1.3 SI 在DCS与PLC 的通讯中扮演很重要的角色。SI是可以组态在TDC3000系统APM(Application Process Module)中的卡件, 所占用的位置等同于DI、DO、HLAI等卡件,只是没有事实上的Slot位。其连接示意图如下:
二、通讯的接口和认可的设备:
在APM中,当把数据类型Array point (数组点)定义成外部IO操作时,该数据类型便可以连接到某SI卡件,并从中获取数据,而这些数据则是扫描自PLC子系统。每一个SI IOP(串行接口卡的IO处理器)可以通过电源适配器(Power Adapter)连接两个FTA,每个SI IOP有32个“虚”Slot位,前16个可以组态在FTA#1,后16个可以组态在FTA#2,且每个FTA可以有不同的接口,如Modbus接口和Allen-Bradley接口。
2.1 Modbus接口所认可的设备Modicon 984 PLC及Honeywell 认可的其他设备,
2.2 Allen-Bradley接口所认可的设备Allen-Bradley PLC-2、3和5等等。
三、通讯协议和卡件型号:
每个SI FTA有一个同步或者异步通讯的接口,其支持RS-232和RS-422/485,其中Modbus 接口FTA支持两种协议,而Allen-Bradley 接口FTA只支持RS-232通讯。两种协议表面的区别就是,RS-232对FTA和PLC连接的距离限于15米,而RS-422/485则可达305米。
3.1 Modbus接口SI FTA的RS-232& RS-422/485协议时:
SI IOP Mode: MU-PSIM11
Power Adapter Mode: MU-TLAP02
FTA Mode: MU-TSIM12
3.2 Allen-Bradley接口SI FTA的RS-232协议时:
SI IOP Mode: MU-PSIM11
Power Adapter Mode: MU-TLAP02
FTA Mode: MU-TSIA12
四、通讯过程说明:
通讯过程具体就是从PLC设备串行接口通过不同的协议设备读取过程数据到 FTA各个“虚”Slot中,然后通过SI IOP将数据写入APM的Image DataBase中,APM在一定的周期中将这些数据读取到组态所对应的SI Array Point中(对应的规则为分配的地址)。下图为通讯流程:
PLC中需要参与通讯的过程数据被组态在通讯寄存器中,位号与地址相对应,格式包含(组态地址+过程数值+校验位)的串行通讯数据块通过串行通讯线到达FTA后,在格式数据块中分离出来地址和过程数据,参考DCS的APM中组态的Slot对应的Array Point地址,并将数据传入正确的Array Point。在Modbus FTA 中数据以19.2Kbaud的速度被扫描,而在Allen-Bradley FTA 中每一个Array Point 都可以选择不同的扫描方式:
A、free runing(用户定义时间扫描);
B、periodic(固定周期扫描);
C、Report-by-except(事件触发扫描RBE);
来组态,而在APM中,从Image DataBase中扫描数据则有以下三种速度(1/4秒、1/2秒、1秒)。
五、膨胀机PLC与DCS的通讯实例:
5.1该应用就是用SI 与DCS通讯的,将膨胀机的过程数据传给DCS,在进行量程和工程单位的转换。
5.2参数设置:
膨胀机与DCS采用RS-485方式通讯,协议是标准的Modbus RTU,PLC设置地址是 1,
波特率9600,选择偶校验。
5.3模块选择:
SI IOP Mode: MU-PSIM11
Power Adapter Mode: MU-TLAP02
FTA Mode: MU-TSIM12
5.4通讯数据说明及地址分配:
所用到的数据类型为模拟量和数据量,模拟量所占用Modbus 地址为40001~40035,都是膨胀机的压力、温度、油位、振动位移等。数字量数据占用40051和40052两地址的若干位,都是膨胀机的运行状态、压力开关和温度tirp状态及报警信号。
六、总结:
PLC与DCS的通讯是每个石化企业都要用到的,控制和连锁有效的结合需要良
好的通讯。SI的应用在一定程度上能达到这个目的,但是其可靠性较低,适合
用于设备状态的监测。
- 保山西门子S7-200代理商 2024-05-08
- 玉溪西门子S7-200代理商 2024-05-08
- 曲靖西门子S7-200代理商 2024-05-08
- 昆明西门子S7-200代理商 2024-05-08
- 云南西门子S7-200代理商 2024-05-08
- 黔南州西门子S7-200代理商 2024-05-08
- 黔东南州西门子S7-200代理商 2024-05-08
- 黔西南州西门子S7-200代理商 2024-05-08
- 毕节西门子S7-200代理商 2024-05-08
- 铜仁西门子S7-200代理商 2024-05-08
- 安顺西门子S7-200代理商 2024-05-08
- 遵义西门子S7-200代理商 2024-05-08
- 六盘水西门子S7-200代理商 2024-05-08
- 贵阳西门子S7-200代理商 2024-05-08
- 贵州西门子S7-200代理商 2024-05-08