产品描述
西门子模块6ES7211-0BA23-0XB0产品
RTU功能的PLC实现
RTU功能的PLC实现包括硬件实现和软件实现两个方面。
1 硬件实现方面
在硬件方面,主要存在PLC的电源如何提供,PLC如何实现长距离的通信,遥控、遥信、遥测、遥调如何具体实现等问题。
由于PLC都有配套的电源模块,因此在设计RTU时,主要应考虑电网断电后PLC 的供电问题,通常以配置充电电池的方式解决。
一般PLC的通信模块只具有短距离的通信能力,虽然有些公司为PLC提供配套的组网模块,但通信距离也限制在若干千米以内。而配电网的特点是点多、面广,因此,借助其它方式以延长PLC的通信距离。方法很多,有电话调制解调器方案、专线调制解调器方案、无线方案、寻呼台服务方案、光纤方案等。在同一个配电自动化工程中,可以根据具体情况,采用单一方法,也可以采用多种方法组合。
在RTU的四遥操作方面,由于PLC的电平以及功率容量同操作设备不可能正好一致,加上有电气隔离的要求,因此,增加辅助的电位转换、功率放大、电气隔离等模块和器件。
对于遥控,当PLC收到开关指令时,输出点到内部电源的通路被接通或关断,如果直接用输出点的输出电流去操作开关设备,则功率根本不够。因此,可把PLC的输出点作为一个小功率继电器的激磁电源,以控制该继电器的常开或常闭触点的开合,再由该继电器去控制配电网的配电开关的操作电源,使配电开关动作,线路或配电设备被投切。
对于遥信,则是将被测开关的辅助触点两端引线接到PLC的输入点和地,当配电开关动作时,辅助触点相应开闭,PLC的相应输入点与地之间被断开或短接,从而在PLC内部获得一个高电平或低电平。
对于遥测,经互感器出来的信号,落在PLC的A/D转换模块的测量范围之内,才能接入到相应模块的输入端。此外,在选择PLC的A/D模块时,还要考虑采样周期问题。周期太长,将无法获得数值。
PLC可以实现遥调功能,但因电网中应用很少,这里不予详述。
2 软件实现方面
在PLC软件方面,由于PLC以循环扫描和中断两种方式来执行程序,因此为了完成所有RTU功能,PLC软件应包括:循环扫描执行的主程序;通信程序(接收和发送报文);收到报文分析程序;上发报文产生程序;输入点电平中断扫描程序;操作执行程序(遥控、遥信、遥测等)。
在上述程序模块的编制中,应考虑以下问题:
a)PLC的主CPU的速度是否足够快?如何编制出执行时间短的程序?
b)PLC和监控的通信要利用一套复杂的通信规约,PLC的程序容量能否容下所有程序?如何编制出短小精干的程序?
c)PLC是通过循环扫描输入点的内存映像以输入点的输入状态的,在配电开关动作时,相应辅助触点往往存在短暂的抖动。抖动的机械频率虽然很高,但相对于PLC的程序扫描执行的频率却是很低的,因此这种抖动会在PLC的内存映像中反映为多次不相干的开关动作,如何在程序上这种开关动作的象?
实践证明,采用恰当的编程技巧,以上各种问题都可以得到圆满解决。
FX系列PLC有基本逻辑指令20或27条、步进指令2条、功能指令100多条(不同系列有所不同)。本节以FX2N为例,介绍其基本逻辑指令和步进指令及其应用。
FX2N的共有27条基本逻辑指令,其中包含了有些子系列PLC的20条基本逻辑指令。
主控指令(MC/MCR):(1)MC(主控指令) 用于公共串联触点的连接。执行MC后,左母线移到MC触点的后面。(2)MCR(主控复位指令)它是MC指令的复位指令,即利用MCR指令恢复原左母线的位置。
在编程时常会出现这样的情况,多个线圈同时受一个或一组触点控制,如果在每个线圈的控制电路中都串入同样的触点,将占用很多存储单元,使用主控指令就可以解决这一问题。MC、MCR指令的使用,利用MC N0 M100实现左母线右移,使Y0、Y1都在X0的控制之下,其中N0表示嵌套等级,在无嵌套结构中N0的使用次数无限制;利用MCR N0恢复到原左母线状态。如果X0断开则会跳过MC、MCR之间的指令向下执行。
MC、MCR指令的使用说明:(1)MC、MCR指令的目标元件为Y和M,但不能用特殊辅助继电器。MC占3个程序步,MCR占2个程序步;(2)主控触点在梯形图中与一般触点垂直。主控触点是与左母线相连的常开触点,是控制一组电路的总开关。与主控触点相连的触点用LD或LDI指令。(3)MC指令的输入触点断开时,在MC和MCR之内的积算定时器、计数器、用复位/置位指令驱动的元件保持其之前的状态不变。非积算定时器和计数器,用OUT指令驱动的元件将复位,当X0断开,Y0和Y1即变为OFF。(4)在一个MC指令区内若再使用MC指令称为嵌套。嵌套级数多为8级,编号按N0→N1→N2→N3→N4→N5→N6→N7顺序增大,每级的返回用对应的MCR指令,从编号大的嵌套级开始复位。
位元件与字元件。象X、Y、M、S等只处理ON/OFF信息的软元件称为位元件;而象T、C、D等处理数值的软元件则称为字元件,一个字元件由16位二进制数组成。
位元件可以通过组合使用,4个位元件为一个单元,通用表示方法是由Kn加起始的软元件号组成,n为单元数。例如K2 M0表示M0~M7组成两个位元件组(K2表示2个单元),它是一个8位数据,M0为位。如果将16位数据传送到不足16位的位元件组合(n<4)时,只传送低位数据,多出的高位数据不传送,32位数据传送也一样。在作16位数操作时,参与操作的位元件不足16位时,高位的不足部分均作0处理,这意味着只能处理正数(符号位为0),在作32位数处理时也一样。被组合的元件元件可以任意选择,但为避免混乱,建议采用编号以0结尾的元件,如S10,X0,X20等。
数据格式。在FX系列PLC内部,数据是以二进制(BIN)补码的形式存储,所有的四则运算都使用二进制数。二进制补码的位为符号位,正数的符号位为0,负数的符号位为1。FX系列PLC可实现二进制码与BCD码的相互转换。
为地进行运算,可采用浮点数运算。在FX系列PLC中提供了二进制浮点运算和十进制浮点运算,设有将二进制浮点数与十进制浮点数相互转换的指令。二进制浮点数采用编号连续的一对数据寄存器表示,例D11和D10组成的32位寄存器中,D10的16位加上D11的低7位共23位为浮点数的尾数,而D11中除位的前8位是阶位,位是尾数的符号位(0为正,1是负)。10进制的浮点数也用一对数据寄存器表示,编号小数据寄存器为尾数段,编号大的为指数段,例如使用数据寄存器(D1,D0)时,表示数为,10进制浮点数=〔尾数D0〕×10〔指数D1〕.其中:D0,D1的位是正负符号位。
现在许多小型的PLC都或多或少地提供了掉电保持寄存器,以便在PLC断电的时候,保存用户想要保存的数据。但大多数时候,PLC制造厂商为了节约成本,不可能提供足够数量的掉电保持寄存器供系统设计人员使用,所以当被调整的数据项目过PLC内部的掉电保持寄存器的数目的时候,我们不得不减少被调整的数据项目(固定或不用)或者购买具有多掉电保持寄存器数目的PLC,这样的话,就使得生产机械缺乏灵活性和适应性,从而降低产品档次或增加成本。
本人在设计服装厂用热风缝合机时就遇到了这种情况,下面就介绍解决这种问题的一种方法,以便大家设计时参考。
所用PLC:松下FP0-C16T,被调整数据:16个,PLC内部掉电保持寄存器数目:10个『8个数据寄存器(DT1652-DT1659:8个各16Bit)和2个字的内部继电器(WR61、WR62:2个各16Bit)』。如果按常规的一个被调整数据占用一个数据寄存器的方法,这显然不能调整16个被调整数据,而只能调整10个被调整数据。为此,本人专门分析了16个被调整数据的数据调整范围,发现多数数据的调整范围只需要从0~255,即0~28-1;而掉电保持数据寄存器DT1652等内部的数据大小为216-1,即256×256-1;所以我们可以将一个被调整的数据只用到数据寄存器的低8位,那么该数据寄存器的高8位就可以来存储另一个被调整数据。
下面就列出该部分的程序:
1、开机时,分开掉电保持寄存器中高8位和低8位至另外两个数据寄存器:
其中,R9013是松下FP0系列PLC内部所规定的、在PLC从program状态到run状态时只动作一个PLC扫描周期的脉冲继电器。
指令F65是一个字与指令,它的作用就是将掉电保持数据寄存器DT1655内的数据与十六进制数FF进行字与,然后将结果送到一般数据寄存器DT0,这样就可以分离出掉电保持数据寄存器DT1655内数据的低8位;
同样二行的字与指令可以分离出掉电保持数据寄存器DT1655内数据的高8位。
指令F120是一个不带进位右移指令,即:对数据字进行右移时,对高位进行补零。K8表示右移8位。
指令F0是一个字传送指令,就是将一般数据寄存器DT10内的数据传送到一般数据寄存器DT1。
上述程序段的目的就是在开机时将掉电保持数据寄存器DT1655内的数据分成两个被调整数据。
2、开机之后,将另外两个数据寄存器的数据合并至掉电保持寄存器的高8位和低8位:
R9014是松下FP0系列PLC内部所规定的、在PLC从program状态到run状态时、二个PLC扫描周期开始动作的脉冲继电器。
指令F121是一个不带进位左移指令,K8即左移8位。
指令F66是一个字或指令,将一般数据寄存器DT20内的数据与一般数据寄存器DT0内的数据进行字或,结果送掉电保持寄存器DT1655。
由上可以看出,在PLC运行的时候,可以任意改变一般数据寄存器DT0和DT1中的数据,而这些改变也同时送到了掉电保持寄存器DT1655,这样,当PLC掉电时,所被调整的数据也就被保存了。
通过同样的方法,我们可以视被调整数据的大小,灵活的使用掉电保持寄存器的每一个Bit位,从而使我们在不增加成本的情况下,提高小型PLC控制系统的性能。
产品推荐