📄 关于ttu软件.txt
字号:
2005.6.17 发现电度量保存有错,修改。
2005.11.5 淮南现场发现 在文件通讯,没有相关数据, 数据总重发
修改 : 通讯 在远程 reset 中 增加 对多桢的操作,
见 //05-11-5
修改文件:
2005.11.16 修改, 增加版本号 目前版本为100既1。00
使用控制参数1位控制TTU发送分桢间隔
控制参数 :
b7: 1:清当天数据
b6: 1:清所有数据数据
b2: : 1 通讯转发 0:不转发
b1: : 1发送空隙可变 0:发送空隙固定
b0: : 1有遥脉 0:无遥脉
2005.11.20 发现程序改后电度量有问题。 考虑flash 寿命,电量保存: 该位 每小时保存,和停电保存。电量单位用0。01度为单位。
改进思路: 不能保存停电记录之原因:为当停电时,已不能进入捕获中断,如在捕获下,则不进行采集,故采样已不正确。
加快处理速度
2005.12.4 改进正确。
2005.12.12 个别FTU不能保存, 问题表现: 在保存前,电压不变。解决思路:在监测到
//脉冲的个数和测频的时间 的相关内容已不需要。
extern int PulseCounter; //脉冲的个数
extern int PulseTime; //脉冲的记数时间
2005.12.23
修改历史数据保存。
2006年 5月 16日
版本改为1。1
修改内容: 现场运行出现有通讯正常,但程序采集数据不变化。怀疑
解决方法: 使用: 如出现电压完全不变化,不再喂狗,重启动。
修改地方:
增加变量:
Uaold=-1;
numconst=30;
在秒变化中:
if(Uaold == BD_data.Ua + BD_data.Ub + BD_data.Uc)
{
if(numconst) numconst--;
}
else
{
Uaold=Uaold == BD_data.Ua + BD_data.Ub + BD_data.Uc;
numconst=30;
}
clr_watchdog()
{
if(!numconst) return ;
.....
}
修改内容: 保存历史数据 每15分钟保存一条
修改文件:
if(DeviceState.Minutef0==1)
{
分时间为 0 : 15: 30: 45: 加保存标志
}
Get1024Page
GetAddrInPage
SaveHisData
ReadHisData
EncodeHistData
修改内容: 保存历史数据 每15分钟保存一条
修改文件:
if(DeviceState.Minutef0==1)
{
分时间为 0 : 15: 30: 45: 加保存标志
}
Get1024Page
GetAddrInPage
SaveHisData
ReadHisData
EncodeHistData
2006年 6月28日:
修改版本 111;
问题:
1: 现场发现历史数据存储有15分钟丢数据问题。
2: 运行时间不能到1440分钟。
1。在void RefreshTimer(void)中存储标志DeviceState.doSaveHisdata置1,
在主循环中
if(DeviceState.doSaveHisdata)
{
DeviceState.doSaveHisdata = 0;
SavePower();
SaveHisData();
}
2。在void RefreshTimer(void)中添加使
if((stDateTime.hour ==23 )&& (stDateTime.minute == 59) && (stDateTime.second == 59) )
{
ptr_1024=Get1024Page(stDateTime,1); //保存统计数据时间到
if(RunState.nAOffNums == 0 && RunState.ARunTime > 1435)RunState.ARunTime = 1440;
if(RunState.nBOffNums == 0 && RunState.BRunTime > 1435)RunState.BRunTime = 1440;
if(RunState.nCOffNums == 0 && RunState.CRunTime > 1435)RunState.CRunTime = 1440;
if(RunState.nSOffNums == 0 && RunState.SRunTime > 1435)RunState.SRunTime = 1440;
WriteStaticsData(0xff);
}
2006年 7月18日:
修改版本 112;
修改内容:
1。485通讯控制信号置反
Init.h中改为
#define CS485ReceiveEnable P2OUT |= BIT6 //485接收使能
#define CS485TransmitEnable P2OUT &= ~BIT6 //485发送使能
2。加入软件看门狗
Init.c 中添加clr_Syswtdog(),并在硬件喂狗时软件喂狗。
3。主循环加入数据不变判断
将原有数据不变判断由秒处理内改到主循环中,并将记数值改为unsigned int型,记数赋值为60000。
4。中断陷阱
在所有没有打开的中断服务程序中添加死循环。
2006年 8月9日:
修改版本 113;
修改内容: 保存历史数据,分三种存储模式
1.控制参数TTU_RunParam.nIntervalOfSave为15时,每15分钟保存一条
2.控制参数TTU_RunParam.nIntervalOfSave为30时,每30分钟保存一条
3.控制参数TTU_RunParam.nIntervalOfSave为其他值时,每1小时保存一条
修改文件:
main.c文件中
void main(void)
{
....
switch(TTU_RunParam.nIntervalOfSave)
{
case 15: HisCate = 1;break;
case 30: HisCate = 2;break;
default: HisCate = 4;break;
}
....
}
CommPulic.c文件中
void RefreshTimer(void)
{
....
if((stDateTime.minute%(15*HisCate))==0)
{
DeviceState.doSaveHisdata = 1;
}
....
}
DeviceState.doSaveHisdata置1在主循环中执行存储
1024.c文件中
Get1024Page 按保存7、15、31天每天分别保存48、24、12页寻找天首页地址,并将统计数据的首地址改为373
GetAddrInPage 再分别按每15分钟、每30分钟、每一个小时时间寻找精确的页地址和页内地址。
EncodeHistData 在数据打包中将每个文件名(日+ 时)后的存储点名 * HisCate + 128,
并相应的改
if((SpecialFlag.FileTxFlag==1) && (CommState.TxWait==0))
{
....
if(SpecialFlag.nSGCount >= (32/HisCate-1))
}
2006年12月4日
修改版本:114
硬件修改基本时钟使用8563时钟输入,软件去除起振判断,将基本时钟关闭低频模式。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -