版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
HZ3000计算机监控系统 感谢您使用华自科技股份有限公司的HZ3000为HZ3000计算机监控系统常见问题解决手册。由于编写水平有限,难免存在一些缺点和错误,敬请批评指正。华自科技股份有限公司保留对本说明书进行修改、解释的权利,由于产品生产时间或产品改进等原因,如果说明书与产品不符者,以实际产品为准,恕不另行通知。二〇一七年十一月目 PDE无法刷新用户 PRE无法刷新用户 发布问 第一次发布失败,多发布几次成 无法获取操作系统类型或者是无法连接服务 发布后图片显示不 画面数据变化慢问 画面上写设定值的操作步 报文中特殊颜色说 查看SCT的日 SCT中有遥信有数据,但是数据是红色 报文只发不 打开串口失 SCT中的报文报的错误提示为 报文串通 SCT中看不到通道中的设 SCT只能看到自身的报文,看不到其他通讯管理机上的报 SCT中有数据没报 SCT中看报文,回的报文是红 HZ3000突然出现所有通讯一下中断,一下恢 GPS对时出现问 告警窗频繁报某装置通信中 告警窗问 PLC相关问 施耐德或GEPLC在HZ3000和MTC5.0中的遥控点号对照 PLC相关协议发送遥控或者遥调时出现反校超时现 PLC相关协议发送遥控时出现遥控信息输入校验失 欧姆龙协议的配置问 保护器相关问 没有报 读不到保护器类 转发配置中的最大值,最小值,以及系数填写问 上不了HZNET问题排 上调度或集控的解决方 老站升级为HZ3000后将数据转发到 案例 MTC5.0将数据转发到HZ3000后台后再由HZ3000上调 案例 HZ3000做集 案例3:现场有两个安装有HZ3000v2.1后台的子站,简称子站1和子站2,然后要将这两个子站的数据转发给集控中心,集控中心也是HZ3000v2.1后 数据共享&数据传 五 CDT上调度问题的排 历史数据查询问题汇 脚本编辑器编写脚 脚本编辑器写双点遥信脚 计算负荷曲线差 水雨量计算值数据库操作和文件操 写告 画面上问题集 画面脚本之电量值乘以系数显 画面分区遥 画面导航 MTC4.0或者4.5的画面直接导入HZ3000,打不开问 报表问题集 历史数据有数据,而报表里没 报表中想要设置小数点位 报表中的生成时间和加载时间说 报表中热点设置说 语音功能配置指 PDEPRE对于从别的电站导入的工程,请先确认该工程当初的历史数据服务器的IP是否用当前电脑ping得通,如果ping不通,下面的步骤基本不用走,直接将工程发给软件研发部处理。如果ping得通,请继续排查。第一步,检查PDE中权限管理中有没有勾上所有的权限。第二步,检查pms服务有没有停掉,每台节点对应的电脑都检查下,做法:打开任务管理器,查看服务中的hz_pms_srv服务是否停止。如果停止,开启就行。同时右键服务中的pms属性,看一下他存在的路径在哪,然后去对应路径找一下有没有对应的文件存在,如果不存在了,重新发布。第二步,查看历史数据服务器对应的监控电脑上的MySQL服务是否开启在。第三步:新建一个工程,然后在那个新建的工程下新建一个节点,该节点只勾选上历史数据服务器,然后保存,最后全部发布。第四步检查hz3000_system数据库中表userinfo中是否有数据。PREPRE中的用户名刷不出来,排查步骤如下:IP地址是否可以ping通历史数据服务器。如果ping得通说明网络没问题,如果ping不通,请检查链路。PDE的用户配置,是否选择了“遥控操作”和“告警确认”功能。打开SCT,查询日志,是否能查询日志,如果能查询说明,能连接上数据库,如果不能,及时反馈开发部。发布问题第一次发布失败,多发布几次成功请注意失败时报什么错误,如果是cms解压失败,检查cms进程,这个跟串口服务器质量有关,有些厂家的串口服务器很难关闭串口服务器的占用或者说要关闭串口服务器的时间比较久,目前的解决方法是重启电脑,以及排查一下串口,一定要保证串口号和串口服务器的串口号一一对应。避免有些串口号售后在HZ3000中使用了,但是串口服务器那里根本就没有的串口。发布时报mysql、检查发布失败的电脑有没有安装mysql服务,同时查看任务管理器的服务MYSQL服务有没有开启。如果没开启,在任务管理器的服务中开启就行了,然后再全部发布。、检查所有勾选上的正准备发布的节点,看有没有机器名重复的情况。、检查有没有手动停止任务管理器服务中的rps服务,并手动开启runtime下面的rps.exe服务,这样也会导致mysql发布失败无法获取操作系统类型或者是无法连接服务器、首先先确定是不是发布在本机,如果不是发布在本机,那么请测试下无法获取操作系统类型的电脑的IP是否能够使用pingping得通,方法如下:win+R弹出运行窗口---cmd》回车输入pingIP号,看有没有丢包如果是本机发布的,那么先检查下rps服务是否在,方法是:检查rps服务是否在运行如果没有运行,请检查查看控制面板--》管理工具---》服务看下这个路径下的rps路径下有没有如果没有,重装runtime。注意重装时要关掉相关的杀毒软件和防火墙,不然rps服务被劫持了,就会没有。重装runtime后发布时要选择“全部发布”按钮,否则,系统会只更新前一次成功发布的内容,而不再读network文件,导致相关的资源丢失。如果上述问题都排查过了,请打开命令行窗口,输入:netshwinsockreset,重置网络,然后重启电脑。如果上述方法都试过了,还是发布报这个错误,请及时联系开发部。发布后图片显示不全排查时确认以下几点:(1)是全部发布吗(2)SCT日志中的PRE模块,看是否有异常信息network.xml排查以下两点:1、工程管理界面有没有某两个节点的机器名重复。2、是否手动删除了network文件,如果手动删除了,请联系软件开发部。非windows分析:这是由于rpsPDE的版本导致的。解决方法:更新下PDE版本画面数据变化慢问题当画面进行切换时,发现信号加载特别慢,这个时候就要排查到底是画面问题还是通讯问题。案例讲解:售后反映开停机流程图切换时,信号加载特别慢,但是不确定是画面问题还是通讯问题。排查方法:1SCT中的数据和pre画面上的数据变化是否同步,如果不同步,则是画面问题,如果同步,则是协议问题,继续下一步操作。2、现场是否有触摸屏,SCT上的点,跟触摸屏上的数据变化是否同步,同步说明PLC的遥信采集没有问题3SCT,看对应通道的数据刷新速度快不快,如果SCT刷新速度没问题,则是PRE的问题;如果SCT刷新速度慢,是协议问题。4、如果是协议问题,则要检查协议版本对不对,还有协议名称。画面上写设定值的操作步骤画面上要写设定值,首先在数据定义中定义一个遥控点,然后在画面上关联这个点。注意以下几点:参数设置必须打开遥控窗,所以权限配置处得勾上遥控权限。参数设置窗中需设置参数个数,默认为1,最多可选择16个参数。如下图所示。其他设置与普通遥控类似。SCT报文中特殊颜色说明报文颜色有灰色和红色,灰色代表数据有一段时间没上传和更新了,或者说数据传上来的时间晚于写值时间,红色代表好久没上传了,原因是质量1了,为什么质量位会被置为1呢,是因为通讯中断了,后台连发好几帧报文都没收到回应,就会判定为通讯中断,然后质量位自动置为1,这种情况一般之前有通过数据的。还有一种原因出现红色,就是出现红色的遥测和遥信原本在协议里就是没写值,所以就展示为红色。这个情况得问下做协议的人是不是那几位根本就没赋值。查看SCT的日志和画面有关的,查看PRE模块和画面上的值有关,查看RDS模块和历史查询有关,查看HDS模块和注册有关,查看regsrv模块和调度有关,查看dts模块和权限有关,查看PMS模块和驱动配置,协议有关,查看cms模块和通道有关,和启停信息功能名,cms模块有关和双机备份有关,查看多机备份和启停功能SCT中有遥信有数据,但是数据是红色的是因为协议把质量位写成1了。这个一般是协议问题,但也有特殊情况,可能上一次写入数据了,因为某些原因,通讯中断了,RDS也是会把质量位写1的,这个只能开发部来查了。开发部查的话,请售后截取报文,或者从SCT那么发布时要注意凡是勾选了通讯服务器的节点是否全部发布了。在浏阳电站曾出现这种情况,当时有两个节点都勾选了通讯服务器(主从热机备份,但是发布选择节点的时候,将那台断电机组的节点勾选并进行发布了,通电的那台未发布,结果那个断电的那台的通讯协议的xml文件无法复制到正在通讯的那台,所以正在通讯的那台机组就没对应的xml文件,所以他的遥信数据都是红色的。报文只发不收常见的一般地址没配对,串口参数没有配对串口,有没有被占用,线没接好,或者线接反了,同时检查一下对应的点号,即数据定义中的点号和文档中的点号看一下。对于一些常见的协议如果出现此种情况,大部分是通信线路的问题,如果是一些新做的协议出现此问题,并且以上步骤全部都排查过了,请联系软件研发部进行处理。打开串口失败确认是不是只发布到本机,如果不是,确认发布的目的地电脑的串口有没有被占用如果是发布在本机,可以手动先停掉cms服务,然后开启Runtime/comms下面的cms.exe,看报什么错误SCT中的报文报的错误提示为代表代表串口不存在/打不开,检查串口配置,重新安装串口驱动,以及重新映射报文串通道案例:电池巡检仪,通一个设备的报文是正常的,同时通两个型号相同但是串口号,通道号不同的设备时发现第二个的报文,装置回得不正确,按理说该回和第一个设备一样的报文,但是他却回的是modbus的报文,很明显报文串通道了解决方法:打开串口调试助手,直接对着设备2发报文,看装置回得正确与否,并排查有没有多个串口服务器,在一台电脑上跑,但是排序排错了SCT中看不到通道中的设备案例:售后反馈说在驱动配置处定义了几个模块,然而在SCT中看不到全部的模块名,如下图所示:解决方法:要启用通道和模块SCT只能看到自身的报文,看不到其他通讯管理机上的报案例解读:21#上通讯的时候,自身以及其他电脑sct到报文,但是在2#上通讯时,其他电脑看不到报文,2#机本身可以看到数据都正常,并且已经全部重新发布了。解决方法:看一下防火墙关了没,一般来讲这种情况是防火墙开着,限制端口了。SCT中有数据没报文排查方法如下:检查看下没报文那台电脑的防火墙以及勾了通讯服务器节点对应的电脑的防火墙关了没,实在不行,重启所有勾了通讯服务器对应节点的电脑。SCT中看报文,回的报文是红色案例:modbus协议,回的报文是红色,发出的报文是正常的解决方法:这种情况说明装置回的报文不正确,可以找到通讯规约,看一下发送报文对不对,然后再联系下厂家看下回的报文是怎么回事,一般来讲,这种情况,是装置或者协议文档问题。HZ3000突然出现所有通讯一下中断,一下恢复一般这种情况是cms挂掉了,首先查看runtime\comms文件夹下有没有出现dump这种现象一般是协议导致的,要验证的话,可以把新添加的协议对应的通道先不要分配给通讯服务器对应的节点,重新发布一遍,再看一下是否还有通讯一下中断,一下恢复的现象GPS对时出现问题案例:HZG1000,时间一直在来回跳变,要跳变几分钟,最后才会会和时间同步答:是不是有两个时钟源,检查下,GPS是和哪台电脑连接的案例分析:现在的现象是这样的,售后勾选了对时服务器的电脑IP的,但是时间在跳变的是101的电脑PDE中只把节点的ipGPS对时的电脑的ip一致的节点,勾选对时服务器,其他的节点不要勾选对时服务器,因为你如果勾上不是连接对时服务器的那台电脑,那么对时的时钟源将会是电脑时间,就会出现报文时间不对,而我们协议中的对时是以对时服务器的时间为准的告警窗频繁报某装置通信中断注意:如果是保护器报通讯中断,请反馈问题时告知开发部以下情况:是哪个厂家型号的保护器,是公司的还是业主自行采购的,采用何种方式在进行通讯,是TCP还是UDP,采用什么通讯协议1、如果是以太网通讯设备报通讯中断,首先pingIP地址,能否ping,ping-2、通讯报文是否正常的,请售后发回通讯报文,如果通讯报文正常,而还是报中断,可能是cms程序问题,但是如果通讯报文不对,协议是会自动报通讯中断的,因为协议会自动检测通讯报文对不对,如果连着几帧报文不对,协议会自动判别为中断,但是能看得到报文收发情况。3、把间隔设长了,间隔设置得太小了,如果发生一点通讯延误,就会报通讯中断4、具体到是哪个装置的通信中断,确认该装置的各个链路的接线是否正常。5、确认通信链路没问题,请将和告警查询截图时间匹配的SCT中的rds和cms的日志信息发给开发部,注意,是将日志时间和售后当时截图的告警窗信息时间相匹配的日志发给研发部。如下图所示,红框区中时间要保持一致,本文中的示例是没有一致的,下图仅为示例。6、HZ3000\runtime\comms文件夹下有没有dump文件出现7、是否有做双备份,请售后反馈信息时特别说明。告警窗问题操作类型显示事件未定义排查方法:该点在数据定义中是否定义了告警窗中的提示信息和历史数据查询窗口的告警窗中的提示信息是否一致如果以上两步依旧不能解决上述问题,请将工程导出为.pro文件,还有整个runtime包,打包发给研发部。告警窗中遥信报警报2遍,一个蓝色,一个灰色案例:,分和合都报了两分析:首先区分这个遥信变位点是在数据定义里的遥信组还是事件组,因为HZ3000中能报遥信变位告警的地方总共两处,一处是数据定义事件组中的定义遥信变位类型的告警,另一处是数据定义遥信组中的遥信变位复选框。勾上这个复选框,只要监测到有遥信数据变位,就会产生告警。尽管用户在告警窗中看到的类型都是遥信变位告警,但是这两处的告警是不同含义的,特别是事件组中的遥信类型的告警,是设备产生的,由设备通过协议解析直接上送的。而遥信组中的变位告警,是解析rds中的遥信数据有没有变位,如果有,就会触发告警。解决方法:看下数据定义,如果事件里面有定义了,遥信那里就不要勾变位告警了备注:遥信变位是灰色事件是蓝色PLC相关问题modbus_plc标准化协议,首先弄清楚几点:(1)这是什么厂家的PLC(GE,施耐德,西门子等(2)公司自己的,还是用户自行采购的(3)标准化还是非标准化(5)当前的自描述文件中写入的值和报文中解析的起始地址和个数是否值一样(PLCplc代码中可以看得到起始地址是多少,并且还可以看得到写进自描述文件的值是多少。施耐德或GEPLC在HZ3000和MTC5.0中的遥控点号对照表HZ3000后台的运行参数设置方法(欧姆龙PLC注释:d1800~d1868PLC的寄存器190~224是MTC5.0的参数设置遥控2001~2036是HZ3000的参数设置遥控定值刷新HZ3000对应的点号是10000,MTC对应的点是PLC相关协议发送遥控或者遥调时出现反校超时现象案例:在画面上点击遥控时,显示遥控反校超时分析:HZ3000报文未发送,所以装置根本收不到报文,更别谈能返回报文,第二个,由于通讯中断问题,导致装置回报文时间慢,这也会报反校超时。解决方法:对于售后协议选的是modbus_plc标准化协议,然后报遥控返校超时,一般情况是遥控点号不对,注意:新版HZ3000中遥调点号是从2001起的,遥控点号是从1开始的。排查方法:首先请先查看SCT中的相关日志,如下图所示:先查看遥控发下去时,对应的PRE中是否有日志,是否有收到点号,如果没有,请查看rds是否有对应的遥控发送报文,如下图所示:注意有没有刚刚画面发送的遥控点信息,如果没有,请查看cms模块日志。一般来讲,如果PRE中发送遥控时,没有遥控点号日志,这个时候请检查画面热点定义,但还不能确定是画面问题,进一步查看rds日志,如果rds中也没收到日志,就代表PRE程序代码有问题,如果说rds收到遥控反校超时的日志,就代表说协议有问题。PLC相关协议发送遥控时出现遥控信息输入校验失败请检查系统设置处是不是勾选上了遥控发送前信息确认欧姆龙协议的配置问题对于欧姆龙协议,关键是弄清楚以下几点:以太网的还是串口的现场的欧姆龙PLC是公司的标准化的吗如果是以太网的,注意驱动配置中的配置,一般如下如图所示:注意:UDP客户端,9600是固定的远方端口,本地端口随便填,一般默认是80,还有一点由于欧姆龙协议它是读取PLC中的地址端口号,节点号信息和HZ3000中的自描述文件进行对比,所以要注意HZ3000目录下有没有对应的欧姆龙自描述信息,欧姆龙PLC的自描述信息是def文件。保护器相关问题没有报文各种保护器对应的def文件请于产品助手上下载,如果产品助手上没有对应型号的保护器def文件,请联系硬件研发部桂经理。在汇报保护器协议问题时,请阐述以下几点:现场是通过哪种方式进行信息传输,以太网还是串口保护器是什么型号的,自己公司的,还是用户自行购买的如果保护器读上来的数据不对,请首先检查对应的def文件在不在,并告知开发部对应的协议版本以及def版本信息。尤其是对于一些常见的保护器协议,这些保护器协议已经很成熟了,出问题概率不大,一般都是def文件版本不对。对于保护器协议加上后通讯装置报文未回的情况,请直接用电脑连接保护器进行报文收发测试,看装置回的什么。案例:售后反映,现场的报文收发有这种现象,据客户反应,将设备掉电,即可恢复。检查步骤如下:现场是通过哪种方式进行信息传输,以太网还是串口,如果是以太网,查查是不是保护器设置了“多连接”。如果是以太网通讯,并没有设置多连接,还是ping不通,重启保护器后恢复重启保护器能恢复的话,保护器出问题的可能性较大,为进一步确定到底是保护器问题还是协议问题,那么使用以下几条命令:在命令行窗口中输入:telnet192.168.x.x502命令来检查保护器网络和端口是否正常,检测端口是否开放。如果提示telnet命令未发现,请到控制面板-》程序功能-》打开或关闭windows功能-》安装telnet客户端。读不到保护器类型案例:C5保护器,SCT中报文显示为加载xml文件失败,如下图所示:解决方案:把保护器屏幕上的检修压板的硬压板退掉转发配置中的最大值,最小值,以及系数填写问题转发配置中的最大值和最小值的填写是分协议和数据类型的,其中对于普通的协议,例如CDT协议,最大值和最小值的填写是不需要的,就算填了也不参与实际的计算值,最多起个越限警示功能,因为CDT协议处理的数据位数不多,一般也就122048,所以基本上用不到最大值和最小值,所以你直接填系数就可以,如果实在想填,尽量填个大范围的数据,至于系数的填写是根据调度来的,比如说调度需要的数据使199.9,而我们协议实际传过去的是1999,那么就需要将数据进行处理,在转发配置的点表中的系数栏填写0.1,在转发配置中为什么会出现最大值和最小值以及系数三者共存的情况,是因为我们想把转发配置这个功能做到通用,其实在实际运用过程中一般只需要填写一项就够了,要么只填最大值最小值,要么只填系数,这有时要看调度,如果说调度和我们说叫我们上传浮点型数据,那我们一般只用管系数这列就可以了,但是如果万一调度告诉我们传归一化类型的数据,并且给了我们一个最大值和最小值,那我们这边的最大值最小值就需要填写了,相反系数你可以不填,一般来讲,最大值和最小值这种情况用得比较少,但不是完全不用,有些电站也会要求,比如说,104协议,调度要求我们上传归一化数据多少个,这就很有可能涉及到最大值和最小值的填写,因为104协议协议中约定了归一化的值,归一化值的用处是把一个很大的数据缩小到一个很小的范围。总之:对浮点型数据类型来讲,最大值和最小值有着和越限一样的功效,超过那个值,就会在往外传的报文中添加一个标志,调度那边会识别那个标志,同时由具体的协议规定当数据越限时,传给调度的到底是实际值还是你转发点表中配置的最大值或者最小值,但是你不填最大值和最小值也没事,因为他不参与实际计算,只有系数那栏才需要参与实际计算。对归一化数据来讲:系数这栏你可以不填,填了也没实际用处,我们当初没把这栏去掉是因为想把转发配置做得更通用,归一化的在HZ3000中的转化:他会首先根据你填的最大值和最小值,将值转换为-11区间,公式为value(实际值)/200=[-1,1],然后再将值乘以一个-32768或者32767的值转化为整数,因为传输过程中不能传输小数示例如下:子站的value/200*32767=value2,取整后往上传调度获得值后:value2*200/32767=value上不了HZNET问题排查
32
外
题1:如果HZ300N连不上HZNET,那么需检查蓝色框2中每个环节。那么蓝色的椭圆框中的每一条线路及五边形的节点处都是要排查的对象具体做法如下:(1)排查交换机2:售后用自己的电脑去连接交换机2,然后用自己电脑去pingHZ300n的网口2的IP(190),看能否ping得通。如果得通,说明交换机2没问题排查交换机和路由器:从交换机2中拔出一根网线接到售后自己笔记本电脑上,网段设置和HZ300N同一网段,然后用笔记本上外网,也就是说用笔记本去替换HZ300N在上图中的位置,将笔记本放置在上图1段,看笔记本能否上外网,如果能上网说明交换机2和路由器这段没问题,但这种判断必须保证交换机和路由器的设置没问题,有很多时候上不了外网,也不能忽略交换机和路由器本身设置问题。排查IP冲突,比如说通过telnet指令远程登录HZ300N通讯管理机,然后再在HZ300N中ping笔记本电脑的ip,结果发现ping不通,但是笔记本电脑pingHZ300Nping得通,那么此种情况我们得考虑可能存在某一台虚拟设备3他的IP地址和HZ300N网口2的IP一致,所以笔记本ping90是ping得通的,但是HZ300Nping笔记本不通,排查,就是将HZ300N的网口2的网线拔掉,再用笔记本ping90ping得通,那么存在虚拟设备3,如果ping不通,就说明不存在虚拟设备,请检查其他。这个里头注意ping语句的书写,windows和linux平台的ping语句不一样(一个加-t,一个不加)。排查每个接线处的接线,譬如说网线端子有没有坏,线有没有松动防火墙检查:如果说其他段排查没问题,那么检查下路由器那里或者路由器到外网之间有没有防火墙,检查防火墙有没有把HZ300N的访问给禁止掉,判定防火墙有没有问题,可以这样试,就是电站其它上网的设备可以ping到HZNET对应的IP,而HZ300Bping不到,并且HZ300B可以ping通内网IP,基本就可以检查下防火墙设置了排查路由器:售后将自己的笔记本直接连向路由器,注意网段设为和HZ300B的网段一致,如果能pingIP说明路由器没问题,但是如果没ping通,请再检查一下路由器有没有mac地址设定,如果有,那极有可能路由器没问题,因为它设置了固定mac访问,所以你的笔记本pingmacping不通,那极有可能路由器出问题了HZ300BHZ300CpingIP,步骤如下:1、首先通过远程安装功能给HZ300C装上HZ30002、装完后可以搜索到HZ300C根据需要,你需要什么IPIP,直接在设备搜索的页面上更改,如果不需要可以不改。比如说现场内网是某个网段,然后为匹配上内网,就得改,然后现场外网是什么网段和IP,为匹配上,就得改,这个地方的两个IP,其实都是HZ300cIP,只是一个IP是公司分给你电脑的IP,这是点击网络连接那里可以看得到,但是你上外网的话,你可能得要网管给你分一个IP,因为很多公司他是不会主动去开设外网的,只有申请才会给你开通,这是你可以在网络连接的高级设置那里添加一个外网IP,就可以访问外网了,这个网址你就可以看视频或者别的,正因为这两个IP都是对应这个通讯管理机,所以,你可以只用232这个内网网址就可以找到对应的电脑,测试电脑内网通不通,你使用232测试,至于这个电脑能不能上外网,你可以测试下百度的网址或者华自的公网IP就行3HZ300B或者HZ300C的IP,使用Telnet命令,例如:telnetHZ300CIPIP可能不一样,本文中的IP(232)是指内网IP。在此之前,先开通电脑上的telnet客户端服务然后再通过HZ300Cping公司hznet53ping不通,请参考上面的排查方法再加一点:通过HZ300C连接不上hznet,原因是默认路由不对,HZ300C默认路由为网口0的路由。解决方法两种:1、将连接外网的IP设置在网口00连接外网(Linux和通讯管理机内部算法决定的)2、通过命令设置默认路由为外网路由(routeadddefaultgwx.x.x.x)上调度或集控的解决方案老站升级为HZ3000后将数据转发到案例现场原来是使用的MTC5.0的后台,并通过MTC5.0后台上过华自科技的远程集控中心后台,后业主要求售后去现场升级HZ3000后台,并将站内数据要接入华自科技的远程集控中心。通常针对此种情况,做法主要有两种,如下图所示: 在选择方案的时候,应因地制宜,比如说上述案例,由于现场已经存在HZ300B通讯管理机(保证数据的安全和通讯的稳定性,所以经综合考虑,方式二更具有可行性。具体配置如下:由于HZ300B内存非常小,经常出现内存满了,所以需要提前清理HZ300B中的内存,那么在清理之前,为保证安全性,首先对HZ300B内部程序进行备份,做法如下:下载升级HZ300B的软件—FlashFXP(用来给通讯管理机上传和下载文件用的,放在监控电脑上),售后可以找软件研发部要。开始备份,执行图11紧接着配置快速连接中的相关信息,如下图2所示。将右边的home文件备份到左侧栏的某个文件下,左侧存储home文件可以自选,如下图3所示。HZ300B内部现有程序,做法如下:首先home文件夹,删掉这个文件夹下的除HZ3000hz3000不能删,其他的都删掉,如下图4所示。升级MTC5.0后台到HZ3000后台,具体做法请参照《HZ3000v2.1后台监控系统使用说明书》的第二节—安装,安装完后台后,首先打开PDE界面,在PDE的工程管理界面新增一专门用来转发数据用的节点,该节点只勾选数据转发服务器,IP地址填上HZ300BIP,配置如下图5所示。其次在数据定义中定义好转发点表中需用到的遥测、遥信、事件等信息,对于老站升级为HZ3000,数据定义的方式主要有两种:1)HZ3000中的数据定义可定义为和MTC5.0一致的通道、模块、点号,如下图图67所示。2)直接把转发配置点表中的所有信息,汇成一个数据组,这个数据组(可命名为转发数据组)中定义的遥测、遥信、告警等信息点数是依据转发配置点表来的,当然这个数据组中的遥测或者遥信或者告警等真实数据可能来源于不同的通道,如下图8所示。最后注意HZ3000转发配置界面的转发配置点表需与MTC5.0后台的点表序号一致,分别如下图910所示。注意代号1、2、3的顺序是对应的,在转发配置中配置上HZNET的相关信息,做法如下:导入数据定义中的相关需要进行上传到HZNET11然后导入。在配置好要转发到公司集控中心的所有遥测遥信点后,请再配置好转发所用的协议,如果是上HZNET,请选择_dts_hzinfo3000协议。上面的配置主要针对通讯链路为方式2,所以才这样配置。远方IP指的是华自科技股份有限公司的公网IP勾上转发节点进行全部发布,同时导出传输数据给软件研发部,格式为.prot,如下图所示:备注:对于有些站点它的hz300b升级不了的,请售后及时反馈给软件开发部。 MTC5.0将数据转发到HZ3000后台后再由HZ3000上调度案例现场有一个三级站(MTC5.0MTC4.5的后台,三级站中已经接入了它下属的三个子站(MTC5.0MTC4.5)的数据,现客户要求将三级站的数据转发给变电站(HZ3000后台,同时将变电站自身部分数据以及三级站传过来的数据合并一起转发给两个调度中心,结构如下图所示:6变电站变电站
三级站
(1)对于代号5处,对于变电站来讲,三级站就相当于HZ3000中的中的某一个通道的设备,因此设备与HZ3000后台的通讯,只用在HZ3000的数据定义中相关的数据点,然后驱动配置中选择相应的协议,数据定义方式也是两种,如案例一第三小节所示,然后约定使用哪种协议进行通讯,像普通的保护器和温度巡检仪这些设备一样进行协议通讯(协议根据现场需不需要事件而定,如果就是普通的遥测遥信的转发,modbus协议就可)的选择,这样cms就可以采集设备上的数据MTC5.0HZ3000MTC5.0得在MTCCONFIG中配置好相应的转发协议和转发配置点表,如下图2-1,2-2所示。2-2-然后相应的HZ3000后台要接收MTC5.0接收端配置通讯通道号和对应协议,modbus/CDT,TCP客户端,客户端口号和MTC5.0一致,同时信息编辑里建立一个组号,配置和其他设备配置类似,点号顺序和MTC5.0一致,定义方法如上所示。(2)调度与站点之间的数据转发,做法如下:1)首先需要在转发配置模块的信息编辑处新建一份转发的点表,在这份点表中选择选择要转发的数据点,注意这些转发的数据点是事先在数据定义中定义好了的。如下图2-3所示,先新建子站名,然后导入。2-新建调度子站名,以便将转发点表传到调度站,通常一份转发点表数据可以传向多个调度站,因此在配置调度子站时,要注意协议的选择(调度与HZ3000后台之间该用什么协议,一般调度会告诉站点,常用的上调度协议104、CDT101,以及其他信息的配置,如下图2-4,2-5所示,这些图中展示了两个调度子站,一个是串口通讯,一个是以太网通讯。2-4通过串口通讯上调度2-5通过以太网通讯上调度转发的点表一般由调度提供,但是如果调度不提供,那就请售后自己提供给调度一份转发表。备注:如果三级站和其下属的子站是MTC4.5的后台,那么在将MTC4.5的数据转发到HZ3000后台时应注意,由于MTC4.5的后台的不带转发配置的协议配置界面,所以一些转发配置的内容得在comms-》commdd.ini中配置,如下图2-6所示。2-另外一般上传调度的时候采用101104规约采用短浮点数上传,如果CDT规约上传需要乘以系数,(HZ3000转发点表的系数不可以像MTC5.0、MTC4.5一样自动算出来,只能售后自己算一下,算法:一般为上限+下限/2048=系数)CDT规约系数要给调度,调度那边乘以系数才得出实际值,短浮点数据则不需要,实时上传。如果需要事件则可以选择CDT协议(cms协议中有对应的CDT协议,有可能有些站需要上传电度,单独有个电度栏,那么HZ3000CDT需要支持下级站电度,MTC5.0/4.5CDTHZ3000CDT需要匹配,另外采用通讯方式一般距离比较远通讯采用TCP服务端通讯,下级站在comdd.ini配置端口,默认一个未占用的端口,默认2404可以,上面站配置为TCP客服端,客户端端口号相同即可,MTC5.0/4.5当做服务器,HZ3000当客户端,在MTC5.0/4.5comdd..ini配置文件中配置TCP服务端通讯,通讯方式等于1,2为TCP客户端。HZ3000做集控案例3:现场有两个安装有HZ3000v2.1后台的子站,简称子站1和2,然后要将这两个子站的数据转发给集控中心,集控中心也是HZ3000v2.1后台(1)1PDE的那台电脑上,选择当前正在编辑的工程,然后点击左上方界面的数据共享方式将子站1的工程导出,同理,子站2也以相同的方式将工程导出,注意子站12的站号应不相同,所以请填入的编号号码一定要不一致。(2)在集控站装有PDE的电脑上,将子站121导出的.pros文件导入进工程举例:将子站1(哈萨克斯坦电站)2(黑龙江永久电站)导入集控站(电站标准模板0807,导入过后,首先在工程管理界面可以看得到很多的节点,首先是两个子站的节点会合成到这里,如下图1所示。其次查看数据定义界面,数据定义界面会出现三个厂,集控站本身有厂11有哈萨克斯坦电站厂名,子站2有厂名--黑龙江永久电站,如下图2所示。最后看画面组态处,可以看到全部画面那里是集成了两个子站的画面的,如下图所示。方法二:类似于上调度的方式进行主站就相当于调度站,子站通过调度相关的协议将CDT至于是tcp还是udp,这个没有硬性规定,建议采用TCP方式数据共享&数据传输数据共享:数据共享是把多个子站的信息通过RDS来共享到集控站,要求是子站和集控站是在一个局域网内,IP互相ping得通1、先导出,根据站号来生成通道号、根据站号来生成厂信息数据点的ID,画面、网络结构都做相应的一些变化。2、把多个工程导入成一个集控工程。简单说就是多个工程厂信息、驱动配置、画面、网络结构都组合到一起了。3、把该工程在集控机上发布,即可通过RDS的数据来共享到所有子站的数据。数据传输:是把多个子站的信息通过DTS转发到集控站:这个类似于集控,必须保证各子站和主站之间的网络是通的,各子站之间通不通没关系。1、先以数据传输的方式导出工程,原理:按照转发配置的点表来导出厂信息,在导出的过程中,程序会自动根据转发点表中的数据,筛选一遍数据定义中的定义,具体为:如果DTS中没有数据点A,那么把厂信息中对应的数据点A删除。注意原厂信息是不能修改的。这里指的导出的厂信息。程序还自动将每个导出的厂中所有的数据点的定义的通道号设置为集控站导入时的站号(该站号是HZNET那边的站号,具有唯一性)。模块号统一改1DTS中点的顺序号。同时程序还会修改导出的子站的厂信息,将各子站的厂信息中ID都改为站号+RealID(ID拼的格式就按高40位站号,低24位原ID)、画面做相应的改动:因为各子站的画面中有热点,所以所有的热点号,程序会根据站号再重新算一遍,并且会将各子站传上来的画布重新命名,比如说子站A0,子站B也有画布0,系统程序会自动给这些画布加上站号。因为通道号就是站号,cms无需导出了。2、导入所有工程到一个工程里面。这样数据定义里面会增加几个厂站信息,原理就是将子站当成一个个设备进行通讯数据采集。在驱动配置那里要选协议,这个协议是一个特殊的协议,带hzinfo字样。3、把该工程在集控机上发布,即可收到各子站的DTS转发过来的数据。五防首先弄清楚以下几点:五防厂家是谁,一般来讲是共创或者优特,如果有别的厂家,请售后特别说明;通讯方式是以太网还是串口,如果是以太网一般选择UDP方式。下面以以太网为例讲解五防怎么配置。首先类似调度,五防想要我们传给他什么数据,我们首先得在转发配置(工程管理界面对应的节点处要勾选五防服务器)的点表里面配置好转发的信息,例如:五防需要我们给他传递断路器开闭状态,那么在转发配置的遥信处就要选择相应的断路器对应的遥信点。如下图1所示。做好点表之后,那就需要将点表的数据传给站点,那么得新建子站名等(步骤类似调度,备注说明:子站地址、远方IP、本地端口这些都是由五防那边指定的,具体如下:CDT上调度问题的排查CDT协议是一个后台只发不收,调度只收不发的协议案例分析:调度站收不到报文,电站电脑SCTdts报文中看不到任何报文,dts服务运行正常,电站机器分布如下:工作站工作站串口串口 串口(工作站4(排查方法:外接一个笔记本,外接笔记本上连接串口是和调度连接的串口,如上图所示(应该连在串口3)外接笔记本主要用于排查以下问题,前提是笔记本上要安装串口调试助手工具:验证数据转发服务器有没有问题:外接的笔记本就相当于调度站,如果数据转发服务器的通讯管理机正常,则售后自己笔记本上的串口调试工具上dts上发出的报文,如果收到了,说明通讯管理机问题不大,可以进行数据转发,但如果说售后是在数据转发服务器上的SCTdts出的报文(或者说在电站的任何一台用作通讯服务器的电脑上能看到数据转发服务器上dts模块发出了报文),只能说明我们后台软件运行正常,后台可以发出报文,至于通讯管理机有没有问题并不能确定。如果售后在数据转发服务器上的SCT(或者电站任何一台电脑的SCT)不能看得到dts出的报文,有可能是CDT协议版本问题,请及时联系软件研发部。排查上调度的串口(对应上图中的串口3)有没有问题:通常情况下售后自己笔记本上没收到发的报文,那么,就要排查下通讯管理机的串口问题,做法是先关掉数据转发服务器上任务管理器中的dts_srv服务(这个针对数据转发服务器带有操作系统的设备),然后在数据转发服务器上利用串口调试助手(如果转发配置中分配的串口为3,串口调试助手上串口号为3)对着售后自己的笔记本发送报文,然后售后看下自己笔记本(笔记本上也安装了串口调试工具,串口号不一定是3,这样看笔记本电脑自身的串口号是多少)上能否收得到报文,如果收不到,就要查看串口了。历史数据查询问题汇总(1)是查不到还是查询失败(2)弹出的提示是什么(3)是说每台都查询失败?(4)pde的版本是什么,可按下图方法查看。PDE的“关于”按钮进行查看常规排查:SCT中的日志信息,查看hds模块的信息。1)runtime下面的2)将日志发回给开发部,模块名选hds模块。runtime下面的temp文件中的内容查找runtime\servers下面有没有出现CrashDumpFile文件以上所有方法都试过了,还不行,但是电站可以访问外网,请下载软件(百度下载,把以下图片截给开发部。脚本编辑器编写脚本脚本编辑器写双点遥信脚本1:调度办通知电站说,断路器的遥信采用的是单点遥信上传调度原理:对于断路器的遥信,一般来讲,都是双点遥信,有0,1,2,3因此在数据定义里面定义为两个遥信点,再由这两个遥信点的值决定另一个遥信点的值(由脚本实现,同时那个被赋值的遥信点在数据定义中被定义为一个点,这个被赋值的点才是要上传到调度的点,所以这个点在转发配置的点表中才是我们遥信组要选择的点。看到这,读者就会疑惑了,遥信一般来讲不是只有01两种状态吗,在转发配置那里配置一个遥信点就可以代表四种状态,其实不是的,后期还是需要104协议进行处理的,104协议检测到那个被赋值的点有四种状态,它就知道这是断路器双点遥信,所以它会将你在转发配置中选中的那个遥信点判定为虚拟的双点,因此尽管在转发配置中,选择的是单条遥信语句,但是实际上协议将他判定为虚拟的双点,进而可以判断他的四种状态。但是104协议有个要求,只能处理连续的双点遥信,如果调度还要我们上传一个远控,如果远控信号是双点的还好,因为连续,协议还可以处理,可是如果远控信号调度那边要求是单点的,然后售后配转发点表的时候又是把双点遥信的断路器状态和远控夹杂着这样上调度,104协议目前处理不了,解决方法,要么改协议,要么就重排点表。做法:步骤1,假如数据定义中有两个遥信点分别是断路器分,对应通道模块点号是(10,1,1,断路器合对应通道模块点号是(10,1,2,现在将两个点合成一个单点遥信,对应的该单点遥信的同好,模块,点号分别是:10000,1,3(随意设置点号,可以从1开始,这里和下面的SetRdsValue(3,1,0,1)中的点号保持一致),如下图4所示。步骤2,开始在脚本编辑器中编写脚本,为了出现脚本编辑器,首先得在工程管理界面对应的节点处勾选脚本服务器,如下图5,6,7所示。脚本编辑器的编写示例之断路器双点遥信:varr=newRds; r.GetRdsValueEx10,1,1,1);//参数:10(通道,1(模块,1(点号,0(遥测类型)1(遥信类型varyx_value1=r.value;//数值varyx_q1=r.q;//质量,0为有效,其他为无效r.GetRdsValueEx10,1,2,1);//参数:10(通道,1(模块,2(点号,1(遥信类型varyx_value2=r.value;varyx_q2=r.q;varresult0=r.SetRdsValue(3,1,0,1);//参数分别代表点号3、遥信类型(遥信1,遥测0)、0(数值、1(质量无效,这里的通道号和模块号默认是脚本服务器通道号,默认是100002所示,模块号默认为 yx_value1代表断路器1的分状态,yx_value2代表断路器1的合状态varresult1=r.SetRdsValue(3,1,1,0);else//yx_value1代表断路器1的分状态,yx_value2代表断路器1的合状态varresult2=r.SetRdsValue(3,1,2,0);elsevarresult3=r.SetRdsValue(3,1,3,0);print("断路器状态不存在varresult4=r.SetRdsValue(3,1,0,1);//通讯中断和控制电源消失时置质量位为1,使图元变灰色print("质量位不为0,请检查! 点击保存,出现图3:画面上关联“单点遥信”即(通道模块点号是10000,1,3那个点,类似普通遥信点的热点定义。步骤4:编写完脚本后,发布工程中的节点,这时要看脚本通道中的值为什么样,可通过SCT看,SCT中会多出一个jsserver通道,点击右边的数据刷新,可以看出对应的遥信点的值。备注:对于CV1.3,CV1.2,CV1.1这三种保护器协议中的双点遥信可通过配置变为单点遥信,无需脚本编写。配置示例如下:计算负荷曲线差值/*HZ3000的脚本功能,实现电厂负荷曲线输入和报警功能时间:2017/02/14*/varr=new //rds实例化varf=new//varw=new //rds实例化print("cl1//varswitch_k1=r.GetRdsValueEx(2,3,181, //获取设置的开关rds遥信值varswitch_k1=r.value;varswitch_k1_q=r.q;r.GetRdsValueEx(2,3,74,0);vard_value_rate=r.value/100;vard_value_rate_q=r.q;if(switch_k1==varval="";varcount=0;vardate=newvarcyear=varcmouth=date.getMonth()+1;varcday=date.getDate();varchour=date.getHours();//获取当前小时varcminutes=date.getMinutes();//获取当前分钟varrow_base=chour*4;//通过小时判断行区间if(cminutes>=0&&cminutes<15)//通过分钟判断在行区间的精确行数varrow=row_base+1;//1}elseif(cminutes>=15&&cminutes<30){varrow=row_base+2;}elseif(cminutes>=30&&cminutes<45){varrow=row_base+3;}elseif(cminutes>=45&&cminutes<=59){varrow=row_base+4;varseperator="-varfileName=cyear+seperator+cmouth+seperator+cday+".csv";varfilePath="D:\\HZ3000\\FHCL\\"+fileName;f.Open(filePath);//打开指定csv文件varvalue=newArray([3]);//数组存放取出的rdswhile(!f.Eof()){val=f.ReadLine();if(count==row)arr=//tt=value[0]=arr[2];print("Getstandardrdsvaluerate!");f.Close();//csv文件r.GetRdsValueEx(40,1,15,0);//算出全部rds值的和varycValueAll=r.value;varycValueAll_q=r.q;print("Printrdsvalueall!");d_value1=(ycValueAll-value[0])/vard_value=Math.abs(value[0]-ycValueAll)/value[0];print("Printd_value!");r.SetRdsValue(1,0,d_value,0);r.SetRdsValue(2,0,d_value1*100, rds差值if(d_value>=d_value_rate)//判断是否超过阈值varresult=r.SetRdsValue(1,1,1,0);//超过阈值,通过回写rds值报警 rds遥信值r.GetRdsValueEx(40,1,5, //获取设置的开关rds遥信值vard_value_seo=r.value;vard_value_seo_q=r.q;if(d_value_seo==0&&d_value_seo_q==r.SetRdsValue(5,1,1,r.GetRdsValueEx(40,1,5, //获取设置的开关rds遥信值d_value_seo=r.value;d_value_seo_q=r.q;if(d_value_seo==1&&d_value_seo_q==r.MakeSoe(1,2,1,"全厂负荷越限动作");r.SetRdsValue(5,1,0,0)r.GetRdsValueEx(40,1,5,1);//获取设置的开关rds遥信值d_value_seo=r.value;d_value_seo_q=r.q;print("Print除报警
varresult=r.SetRdsValue(1,1,0,0);//返回阈值内,通过回写rds值消r.GetRdsValueEx(40,1,5, //获取设置的开关rds遥信值vard_value_seo_2=r.value;vard_value_seo_2_q=r.q;if(d_value_seo_2==0&&d_value_seo_2_q==r.MakeSoe(1,0,1,"全厂负荷越限复归");r.SetRdsValue(5,1,1,0)print("Thed_valueisvarresult=r.SetRdsValue(1,1,0,0); //返回阈值内,通过回写rds值消除报警//r.MakeSoe(1,0,1,"Closethescripts!");print("Closethescripts!");print("Printresult:");if(d_value>=
r.SetRdsValue(5,1,1,r.SetRdsValue(5,1,0,varmaste_load; //主机负荷varslave_load; //副机负荷varmaste_load_q;//获取主机负荷质量0为正常1为不正常varslave_load_q;//获取副机负荷质量0为正常1为不正常//1号机负荷r.GetRdsValueEx(2,1,52,0);maste_load=r.value;maste_load_q=r.q;r.GetRdsValueEx(2,1,86,0);slave_load=r.value;slave_load_q=r.q;varyc9=maste_load+slave_load;r.SetRdsValue(9,0,yc9,0);//有功r.GetRdsValueEx(2,1,53,0);maste_load=r.value;maste_load_q=r.q;r.GetRdsValueEx(2,1,87,0);slave_load=r.value;slave_load_q=r.q;varyc10=maste_load+slave_load;r.SetRdsValue(10,0,yc10,0);//无功print('ok//2号机负荷r.GetRdsValueEx(2,2,52,0);maste_load=r.value;maste_load_q=r.q;r.GetRdsValueEx(2,2,86,0);slave_load=r.value;slave_load_q=varyc11=maste_load+slave_load;r.SetRdsValue(11,0,yc11,0);//有功r.GetRdsValueEx(2,2,53,0);maste_load=r.value;maste_load_q=r.q;r.GetRdsValueEx(2,2,87,0);slave_load=r.value;slave_load_q=r.q;varyc12=maste_load+slave_load;r.SetRdsValue(12,0,yc12,0);//无功print('ok//3号机负荷r.GetRdsValueEx(25,1,7,0)varyc13=r.value;varyc13_q=r.SetRdsValue(13,0,yc13,0);//有功r.GetRdsValueEx(25,1,8,0)varyc14=r.value;varyc14_q=r.SetRdsValue(14,0,yc14,0);//无功print('ok//全厂总负荷var //1号机有功/无功总负荷varoverall_load1_q;//1号机有功/无功总负荷质量var //2号机有功/无功总负荷var //2号机有功/无功总负荷质量var //3号机有功/无功总负荷var //3号机有功/无功总负荷质量r.GetRdsValueEx(40,1,9,0);overall_load1=r.value;overall_load1_q=r.q;r.GetRdsValueEx(40,1,11,0);overall_load2=r.value;overall_load2_q=r.q;r.GetRdsValueEx(40,1,13,0);overall_load3=r.value;overall_load3_q=r.q;yc15=overall_load1+overall_load2+overall_load3;r.SetRdsValue(15,0,yc15,0);r.GetRdsValueEx(40,1,10,0);overall_load1=r.value;overall_load1_q=r.q;r.GetRdsValueEx(40,1,12,0);overall_load2=r.value;overall_load2_q=r.q;r.GetRdsValueEx(40,1,14,0);overall_load3=r.value;overall_load3_q=r.q;yc16=overall_load1+overall_load2+overall_load3;r.SetRdsValue(16,0,yc16,0);print('ok//水头varwater_head1;varwater_head1_q;varwater_head2;varwater_head2_q;r.GetRdsValueEx(27,1,1,0);water_head1=r.value;water_head1_q=r.q;r.GetRdsValueEx(27,1,2,0);water_head2=r.value;water_head2_q=r.q;yc1=water_head1-water_head2;//水头r.SetRdsValue(8,0,yc1,0);水雨量计算值数据库操作和文件操作vars=newvarinterval=5*1000*varfilePath="D:\\HZ3000\\ScriptConfig\\"+"water.csv";varrdsptr=newRds;varfileptr=newFile;varcurwater=0.0;varlaststate=0;varsqlret=varlastsoewatertime=newDate();//上次发送水位告警时间varlastsoeraintime=newDate();//上次发送降雨告警时间varlastsoerainval=0;//上次发送降雨告警的数值varbfirstwater=true,bfirstrain=//日期时间原型增加格式化方法Dtotype.Format=function(formatStr){varstr=formatStr;varWeek=['日','一','二','三','四','五','六str=str.replace(/yyyy|YYYY/,str=str.replace(/yy|YY/,(this.getYear()%100)>9?(this.getYear()%100).toString():'0'+(this.getYear()%100));varmonth=this.getMonth()+str=str.replace(/MM/,month>9?month.toString():'0'+month);str=str.replace(/M/g,month);str=str.replace(/w|W/g,str=str.replace(/dd|DD/,this.getDate()>9?this.getDate().toString():'0'+str=str.replace(/d|D/g,str=str.replace(/hh|HH/,this.getHours()>9?this.getHours().toString():+str=str.replace(/h|H/g,str=str.replace(/mm/,this.getMinutes()>9?this.getMinutes().toString():'0'+this.getMinutes());str=str.replace(/m/g,str=str.replace(/ss|SS/,this.getSeconds()>9?this.getSeconds().toString():'0'+this.getSeconds());str=str.replace(/s|S/g,this.getSeconds());returnstr;fileptr.Open("D:\\HZ3000\\ScriptConfig\\test.txt");//打开指定csv文件waterMax=fileptr.ReadLine();print("data="+waterMax);if(waterMax==undefined){waterMax=if(rdsptr.q!=0){print("watervalueinvalid");curwater=rdsptr.value;handle=s.FDbUtility_Dll_Init(1,true);if(handle==-print("FDbUtility_Dll_InitFail");//开始处理降雨 if(ret!=print("FDbUtility_OpenByConnobjFail");varsql=sqlret=s.FDbUtility_ExecuteQuery(handle,sql);if(sqlret==//未获取到数据print("FDbUtility_ExecuteQueryGetDataNull");print("sqlreturn:");vararr=if(arr=='undfined'||arr==null||arr.length!=//未获取到数据print("FDbUtility_ExecuteQueryGetDataNull");varrainfall=parseFloat(arr[1]);print("Success\n\n");functionvardiffdt=GetTimeDiff(lastsoewatertime,newDate(),"minute");print("currentwater"+water+",max:"+waterMax);if(water>waterMax){if(laststate==0)if(diffdt<=60&&!bfirstwater){return;}vardiff=water-waterMax;varexplain="当前水位"+water.toFixed(2)+"米,超汛限水位"+diff.toFixed(2)+"米(汛限水位"+waterMax.toFixed(2)+"米)";lastsoewatertime=newDate();bfirstwater=false;
laststate=if(laststate==if(diffdt<=60&&!bfirstwater){return;rdsptr.MakeSoe(1,2,0,"当前水位:"+water.toFixed(2)+"米;已将至讯限水位以下.");lastsoewatertime=newDate();bfirstwater=false;laststate=functionvardiffdt=GetTimeDiff(lastsoeraintime,newDate(),"minute");print("soeintervaltime="+diffdt);if(rainfall>=if(diffdt<=60&&!bfirstrain){return;varexplain="当前降雨量"+rainfall+"mm";lastsoeraintime=newDate();bfirstrain=false;functionvardate=newvarchour=date.getHours();varcyear,cmonth,cday;vardtstr="";if(chour>=8){cyear=date.getFullYear();cmonth=date.getMonth()+1;cday=date.getDate();dtstr=cyear+"-"+cmonth+"-"+cday+"elsevardtyesterday=GetDateDiff(-1);cyear=dtyesterday.getFullYear();cmonth=dtyesterday.getMonth()+1;cday=dtyesterday.getDate();dtstr=cyear+"-"+cmonth+"-"+cday+"varsql="selectvalfromtyc_1166whereq=0anddatatime>'"+dtstr+"'orderbydatatimedesclimit1";returnfunctionGetDateDiff(AddDayCount){vardd=newDate();dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期returnfunctionGetTimeDiff(startTime,endTime,diffType)//xxxx-xx-xx的时间格式,转换为xxxx/xx/xx的格式print("start:="+startTime=startTime.Format("yyyy-MM-ddHH:mm:ss").replace(/\-/g,"/");endTime=endTime.Format("yyyy-MM-ddHH:mm:ss").replace(/\-/g,"/");//将计算间隔类性字符转换为小写diffType=varsTime=newDate(startTime);//开始时间vareTime=newDate(endTime);//结束时间//作为除数的数字vartimeType=1;switch(diffType){timeType=1000;timeType=1000*60;timeType=1000*3600;timeType=1000*3600*24;returnparseInt((eTime.getTime()-sTime.getTime())/写告警vararr=newvararrname=newArray();arrname[0]="中控室A";arrname[1]="
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度户外展示柜安装与广告投放合同3篇
- 幼儿桌游游戏化课程设计
- 英语句子结构的课程设计
- 热工课程设计自我评价
- (标准员)基础知识练习(共六卷)
- 幼儿园回忆过年课程设计
- 红色精神体育课程设计
- 物流行业配送技巧分享
- 生物实验教学案例分享计划
- 网络实验课课程设计书
- 等保2完整版本.0介绍及建设流程
- 苏教版科学六年级上册期末测试卷含完整答案(各地真题)
- 市场法评估企业价值
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 通信安全员ABC证报名考试题库及答案
- 英山县南河镇黑石寨饰面用花岗岩矿矿产资源开发利用与生态复绿方案
- 开放系统10861《理工英语(4)》期末机考真题及答案(第103套)
- 2023年印尼法律须知
- 20S805-1 雨水调蓄设施-钢筋混凝土雨水调蓄池
- 《中华民族大团结》(初中)-第7课-共同创造科学成就-教案
- OptiXOSN3500产品培训课件
评论
0/150
提交评论