水电站电表数据的PLC采集
摘 要: 就宏沅水电站电度表脉冲采集问题,提出了一种利用PLC进行采集的方法,此方法不仅使问题得到解决,而且使数据采集过程简化。
关键词: 监控系统;可编程控制器;RS232通讯
一、引言
在宏沅电站,运行值班人员每天必须完成电度日报表的填报打印工作,以统计全站发、供电量,提供可靠性数据。因而运行值班人员需频繁地从现场各电度表盘读取数据,再手工录入。这显然增加了运行值班人员的工作负担,也与水电站提倡的“无人值班”很不相称,为此我们采用PLC统一进行采集。
二、系统框图及硬件配置
系统框图如下图1:
系统采用三菱FX2N-64MT微型可编程控制器作为基本模块,输入输出各32点,共64点。FX2N系列PLC具有极高的扫描速度(0.08μS/基本指令),内附大容量存储器,是一款高性能的小型可编程控制器。PLC与脉冲电度表连接见图1,脉冲电度表无源光耦输出直接接入PLC输入点,一个光耦接一个输入点,由PLC扫描实现脉冲累加。
为了实现串行通讯,采用了一个FX2N-232-BDRS232通讯模块,因本装置中RS232只用3根线RD、SD、SG(地),对于9针RS232口定义为:RD(3脚)、SG(5脚)、对于25针RS232口定义为:RD(2脚)、SD(3脚)、SG(7脚)。
装置还采用一个数据存取单元FX-10DU,可读、写PLC中所有数据,从而很方便地修改数据。
三、软件设计
1、数据存放位置
FX2NPLC中数据寄存器均为16 bit二进制数,用D表示,一个D表示数值为-32 768~+32 767,可用相邻两个D表示32 bit二进制数,表示范围:-2.147×109~2.147×109,足够表示电度表读数。采用D200-D511停电保持用寄存器,电度表读数按以下存放。
(D203,D202)——第1个电度表的读数
(D205,D204)——第2个电度表的读数
依此类推,第30个电度表的读数存放在(D261,D260)。
2、程序指令基本说明
PLC指令功能强大,使用方便,如16位指令:ADD D50 D60 D100表示D50+D60→(D101,D100);当指令前加个D时为32位指令,如DADDD5 D10 D100表示(D6,D5)+(D11,D10)→(D101,D100);当指令后加P时为脉冲执行型。
3、脉冲采集程序
脉冲采集程序见图2。当X0闭合上升沿时,计数器C101(增计数器)加1,计数器的预置值为18,当C101=18时其触点闭合,上升沿时(D203,D202)数值加1;当(D203,D202)>9 999 999时,电度表读数为0,(D203,D202)清零,C101清零,预置数18不变,C101又从零开始累计。
程序中常数K值取决于使用电度表情况,如本厂电度表计数有5位整数,一位小数,再一位小格,即ABCDE.FG。但在PLC中只用整数表示,即ABCDEFG,比实际值放大100倍。如1 800个脉冲为1 kW·h(可从电度表参数得到),则18个脉冲时应在G位加1,所以常数K值应为18。各电度表就按这种方法设置参数,从而保证程序计数精度。其它电度表持续与此相似,只要设相应的常数K,至于电度表个数按实际情况增删程序即可。
实际运用中可能还会遇到K为小数的情况,如1650个脉冲为1度,则变为计数器C101应取K16.5,但在PLC中K只能是整数。考虑到1 650×2=3 300,即33个脉冲加0.02度,程序可作如下处理:(C101 K18)改为(C101 K33),〔DINCPD202〕改为〔DADDPD202 K2 D202〕,即当计数器C101=33时,(D203,D202)数值加2,结果存(D203,D202)。
4、RS232通讯程序
(1)参数初始化
采用标准RS232通讯,在FX系列的RS指令中,具体参数由设置D8 120的值确定,D8 120存放通讯的参数,设定(D8 120)=H0 361,表示波特率为2 400 bps,无奇偶效验,8位数据位,1位起始位,1位停止位,无握手信号。
(2)数据格式
数据格式依次为:起始字符(D199),数据头,第1块电表读数,第2块电表读数,……,第30块电表读数,效验和,结束字符(D264)。数据头“FF00FF00”存入(D201,D200),数据头取值可从RS指令说明得到;每个电度表值为32 bit二进制数,分4个字节上传,接收方将这4字节拼成一个32 bit二进制数即可。一次共传送5+4N+3=4N+8字节(N为电度表个数),因RS指令中传送字节数不计起始、结束字符,所以一次传送字节数为4N+6。该电站有30块表,则一次传送字节数为126;效验和占两个字节,值为n块电度表读数各字节值的和,存入一个未占用寄存器D中即可,用一个D存效验和可用于多于40块表的情况,效验和计算由程序中CCD指令实现。
(3)程序设计
①初始化程序:
下面程序(见图3)完成初始化工作:M8002在第一个扫描周期时闭合,闭合后将数据头“FF00FF00”存入(D201,D200),并设定D8120的值,即设定通讯参数,同时将M8161复位,M8161决定8 bit还是16 bit操作模式,M8 164=0表示16bit操作模式,即一个D存放2个字符。
②数据校验及传送程序
程序完成数据效验和数据传送见图4。
M8000在PLC运行时一直闭合,闭合后把从D202-D261的120个字节(30×4)的效验和存入(D263,D262);RS指令表示传送的首地址为D200,K26表示一次传送的数据总字节数为126,D360表示接收数据首地址,K0表示接收字节数为0,即不接收数据(本程序中不需要接收数据);采用定时上传一次的办法,每次按上述数据格式传送一次,程序中1 min上传一次,T0为0.1 min定时器,可改K值改变传送数据间隔;每隔1 s触发一次M8122,送出一次数据,M8122为数据传送标识,M8122=1则开始发送数据,一旦发送完毕将自动复位,等待下一次触发。
四、结束语
在现场投入运行时,上位机(PC)用VC++编制了一个数据接收通讯程序,完成数据的接收和处理工作,从而实现了电度表数据采集的自动化。测量结果证明,本装置具有很好的采集精度,且运行稳定,是行之有效的电表数据采集系统。
更多相关内容请点击下方
西门子S71200系列PLC连接多功能电表
1、需求描述:
通过西门子S7-1200系列PLC,连接多功能电表,通过Modbus协议读写电表的数据。
2、方案描述:
桥接器的网口连接西门子S7-1200系列PLC的网口,串口连接到电表的485通讯口,桥接器内部直接将电表的数据映射到西门子PLC中,PLC不需要编程通讯程序也不要硬件组态。
拓扑图:
西门子S71200连接电能表
3、桥接器参数配置及数据映射:
4、多功能电表数据地址:
5、PLC配置及数据查看:
建立DB200,查看电脑表数据。
相关问答
电能表485怎么接进西门子plc?
将电能表485接入西门子PLC的步骤如下:1.准备485通讯线路,连接好电能表的485通讯线路。2.在西门子PLC中选择合适的通讯模块,如CP341或CP343等,然后安装和...
plc如何直接读取数字电表数值?
直接读取数字电表的数值需要使用PLC和数字电表之间的通讯接口。以下是一般而言的步骤:1.根据数字电表的类型,选择合适的通讯协议。常见的协议包括MODBUS、Pr...
有谁编过PLC与智能电表通讯?
[回答]采用远程预付费电表系统后,收费问题不但迎刃而解,而且与租户的矛盾也减少了很多,“以前我们去抄表、收费,很多人都会有疑议,说电表跑得快,说电价高...
电能表载波通讯如何与电脑通讯?
电能表载波通讯(也称为PLC通讯)与电脑通讯可以通过以下几种方式实现:1.载波通讯模块:电能表通常配备有载波通讯模块,该模块可以与电脑相连,通过串口或者...
西门子200plc如何读取电能表中的各个数据?
这个要看电能表是否有这个功能,如果电能表具有通讯功能就可以读取各个数据,使用MODBUS通讯可以实现。这个要看电能表是否有这个功能,如果电能表具有通讯功能...
plc编程常见问题及解决方法?
一、查找故障的设备PLC的指示灯及机内设备,有益于对PLC整个控制系统查找故障。编程器是主要的诊断工具,他能方便地插到PLC上面。在编程器上可以观察整个控制...
...多个欧姆龙CJ系列的PLC,当前有组态软件,PLC编程器。-ZOL问答
主要看你的组态软件是否有相应PLC的驱动程序,如果有的话可以直接用232转485卡然后通过线连接相应的PLC即可~~有用(0)回复19921126yang组态软件一般都有PLC厂...
怎样用plc程序通过三相有功功率变送器来显示电度表度数?
如果是4-20ma的话,PLC一般都有模拟量转工程量的功能块,你只需要将变送器的4-20MA信号接到PLC的模拟量通道,调用功能块,上下限设置下,就可以显示你的实时电量...
GEplc怎样做到将一台设备的运行时间分段累计????-盖德问答...
你说的是电费计量的问题吧?有专用与峰谷平记电量的电度表。完全可不必选用plc来做着相关电量计费。比如:将一天时间分为两个阶段,0:00----12:00、...
plc电力猫,通信的传输距离,最大带宽?
一般最远在300米左右,太远了干扰会增大,最大带宽可以达到80M,不能跨电表传输,也就是说你家的不会穿到隔壁去,目前市场上的都是针对220V家庭使用的,既然220V...