📄 sca_xl_l3.a96
字号:
;===============================================================
;== SCA_XL_L3.A96 ==
;== YH-B2100线路单元三元件法算法封装 ==
;== 2003.10.08.XI'AN.WANGWEI ==
;===============================================================
;线路单元三表法三相测量三相保护
;适用对象:35KV\10KV系统
;接线: IN0-UAB/IN1-UBC/IN2-UCA/IN3-IA/IN4-IB/IN5-IC
; IN6-UL/IN7-U0/IN8-I0/IN9-IA/IN10-IB/IN11-IC
;-------------------------------------------------------
;SCA_XL_L3.A96说明及预处理
;-------------------------------------------------------
;INI_SCADA: 程序初始化模块,在主程序初始化段调用?
;MAIN_SCADA: 主程序中计算处理模块,在主程序循环段调用
;MAIN_SCADA_BC: 补偿状态下主程序计算处理模块
;INT_SCADA_CY: 时钟中断采样模块,每次在进入时钟中断时调用
;INT_SCADA_BCCY:补偿状态下时钟中断采样
;INT_SCADA_SF: 时钟中断算法处理模块,在时钟中断中和保护程
; 序循环调用
;INT_SCADA_CPB: 本侧测频中断处理模块
;INT_SCADA_CPD: 对侧测频中断处理模块?
SCA_XL_L3 MODULE
$INCLUDE(80C296SA.INC)
$INCLUDE(PMAIN.INC)
;FOR E2PROM READ\WRITE
EXTRN WREN_CMD:NULL ;WRITE
EXTRN PAG_WR :NULL ;WRITE
EXTRN BYT_RD :NULL ;READ
;专用寄存器及标号定义
RSEG AT 40H ;40H-7FH
SCA_CYBASE: DSW 1;采样空间基地址
SCA_FLYBASE: DSW 1;复域系数基地址
SCA_JBBASE: DSW 1;基本运算基地址?
SCA_XXUBASE: DSW 1;相序处理基地址?
SCA_GLBASE: DSW 1;功率处理基地址
SCA_SHBASE: DSW 1;显示区间基地址
SCA_BC_BASE: DSW 1;补偿运算基地址
SCA_BSBASE: DSW 1;补偿显示基址?
SCA_CYCB_NOW: DSW 1;本测本次时钟周期?
SCA_CYCD_NOW: DSW 1;对侧本次时钟周期
SCA_CPB_WAS: DSW 1;本侧上次测频中断EPA1_TIME计数
SCA_CPD_WAS: DSW 1;对侧上次测频中断EPA2_TIME计数
SCA_BHCY_IP: DSW 1;保护值采样位置控制指针
SCA_CLCY_IP: DSW 1;测量值采样位置控制指针
SCA_JFDD_CON: DSW 1;积分电度刷新时间控制寄存器
SCA_BUR: DSW 1;控制20周波复域系数的动态存储?
SCA_JFDD_CON1: DSW 1;积分电度定时写E2PROM计时器
SCA_FMXS: DSW 1;封面显示速度控
SCA_CPB_ON: DSB 1;本侧本次测频是否有效
SCA_CPD_ON: DSB 1;对侧本次测频是否有效
SCA_FRE_NUM: DSB 1;周波数记载
SCA_BHBC_TIME: DSB 1;后六通道补偿求解次数控制
SCA_CLBC_TIME: DSB 1;前六通道补偿求解次数控制
SCA_BC_CON: DSB 1;补偿显示控制标志
SCA_GLFX_A: DSB 1;A相功率继电器方向
SCA_GLFX_B: DSB 1;B相功率继电器方向
SCA_GLFX_C: DSB 1;9相功率继电器方向
;SCA_YGFHAO: DSB 1;记载有功功率方向,由主模块定义
;SCA_WGFHAO: DSB 1;记载无功功率方向,由主模块定义
MCDD_YGYS: DSB 1;脉冲电度有功延时 LOU
MCDD_WGYS: DSB 1;脉冲电度无功延时 LOU
MCDD_LAST: DSB 1;无功脉冲电度上一次状态LOU
MCDD_LAST1: DSB 1;有功脉冲电度上一次状态LOU
;---标号区
SCA_GLBASEA EQU 0E000H;功率处理基地址?
SCA_XXUBASEA EQU 0E400H;相序显示基地制
SCA_XXUBASEB EQU 0E4F0H;优化中断
SCA_SHBASEA EQU 0E700H;显示处理基址
SCA_FLYBASEA EQU 0E900H;傅氏系数基址
SCA_BC_HCA EQU 0EA10H;补偿缓冲区首址
SCA_BC_BASEA EQU 0EB00H;补偿处理基址
SCA_BSBASEA EQU 0EF00H;补偿显示基址
SCA_CYBASEA EQU 0F800H;采样基址拷贝
SCA_DATA_BURA EQU 0FE00H;保护值的周波缓存区首址
SCA_AD_BURA EQU 0FF00H;A/D存储区首址?
SCA_JBBASEA EQU 0FF40H;基本运算存储基地址
;--宏定义
SCA_BCSUM MACRO
LOCAL SCA_BCSUMA
DIV SUM,#4096;SUM/4096
CMP SUM2,#2047
JNH SCA_BCSUMA
INC SUM1
SCA_BCSUMA:
ENDM
;-----------
SCA_BCSSU MACRO
LOCAL SCA_BCSSUA
DIV SSU,#4096;SSU/4096
CMP SSU2,#2047
JNH SCA_BCSSUA
INC SSU1
SCA_BCSSUA:
ENDM
;-----------
SCA_BCXXU MACRO
LOCAL SCA_BCXXUA
LD SUM1,TMPAX
CLR SUM2
DIVU SUM,#05
CMP SUM2,#02
JNH SCA_BCXXUA
INC SUM1
SCA_BCXXUA:
MULU SUM,SUM1,#05
LD TMPAX,SUM1
ENDM
;-----------
SCA_PULSE MACRO
LOCAL SCA_PUCR,SCA_PUCR1
INC TMPAX
ADDC TMPBX,00H
CMP TMPBX,#5F5H;
JH SCA_PUCR
JNE SCA_PUCR1
CMP TMPAX,#0E100H;
JH SCA_PUCR
JNE SCA_PUCR1
SCA_PUCR:
CLR TMPAX
CLR TMPBX
SCA_PUCR1:
ENDM
;--------------------------------------------
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;-------------------------------------------------------
;-------------------------------------------------------
;主程序初始化模块
;-------------------------------------------------------
CSEG FAR
PUBLIC INI_SCADA
INI_SCADA:
LD SCA_CYBASE,#SCA_CYBASEA;
LD SCA_FLYBASE,#SCA_FLYBASEA;
LD SCA_JBBASE,#SCA_JBBASEA;
LD SCA_XXUBASE,#SCA_XXUBASEA;
LD SCA_GLBASE,#SCA_GLBASEA;
LD SCA_SHBASE,#SCA_SHBASEA;
LD SCA_BC_BASE,#SCA_BC_BASEA;
LD SCA_BSBASE,#SCA_BSBASEA;
CLRB SCA_CPB_ON;
CLRB SCA_CPD_ON;
CLR SCA_CPB_WAS;
CLR SCA_CPD_WAS;
CLR SCA_CYCB_NOW;
CLR SCA_CYCD_NOW;
CLR SCA_JFDD_CON;,#4B0H;1 SECOND
CLRB SCA_JFDD_CON1;,#60; 1 MINUTE
CLRB SCA_FRE_NUM;
CLR SCA_BHCY_IP;
CLR SCA_CLCY_IP
CLR SCA_BUR;
;CLRB SCA_YGFHAO
;CLRB SCA_WGFHAO
CLRB SCA_GLFX
CLRB SCA_CLBC_TIME;
CLRB SCA_BHBC_TIME;
CLRB SCA_BC_CON;
CLRB SCA_GLFX_A
CLRB SCA_GLFX_B
CLRB SCA_GLFX_C
CLR SCA_FMXS
;F800H-FFFFH CLEAR ALL
LD TMPAX,#400H
LD TMPBX,#0F800H
SCA_CYYS_QK:
ST R0,[TMPBX]+
DJNZW TMPAX,SCA_CYYS_QK
;E000H-EFFFH CLEAR ALL?
LD TMPAX,#800H
LD TMPBX,#0E000H
SCA_GLXXU_QK:
ST R0,[TMPBX]+
DJNZW TMPAX,SCA_GLXXU_QK
;从E2PROM读补偿值到缓冲区
;IN0-IN11
LD TMPAX,#0CF00H
SUB SERADR,TMPAX,#PDZ_BASE
LD SRADR,#SCA_BC_HCA
LD SERNO,#48
ECALL BYT_RD
;;; LD TMPBX,#SCA_BC_HCA
;;; LDB TMPDL,#24
;;;SCA_XTWC:
;;; LD TMPCX,[TMPAX]+
;;; LD TMPCX,#1000H
;;; ST TMPCX,[TMPBX]+
;;; DJNZ TMPDL,SCA_XTWC
;读取脉冲电度
LD TMPAX,#PDZ_YGZ1;P+有功电度
LD MMM1,[TMPAX]+
LD MMM2,[TMPAX]
LD TMPBX,#10000
MULU UMM,MMM2,TMPBX
ADD UMM1,MMM1
ADDC UMM2,#00H
ST UMM1,0160H[SCA_SHBASE]
ST UMM2,0162H[SCA_SHBASE]
LD TMPAX,#PDZ_YGF1;Q+有功电度
LD MMM1,[TMPAX]+
LD MMM2,[TMPAX]
LD TMPBX,#10000
MULU UMM,MMM2,TMPBX
ADD UMM1,MMM1
ADDC UMM2,#00H
ST UMM1,0168H[SCA_SHBASE]
ST UMM2,016AH[SCA_SHBASE]
RET
RST
;----------------------------------------------------------
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
;----------------------------------------------------------
;----------------------------------------------------------
;正常状态下主程序数据处理模块
;----------------------------------------------------------
PUBLIC MAIN_SCADA
MAIN_SCADA:
SJMP SCA_JSZB
SCA_GL_1:
LJMP SCA_DDZZ
SCA_JSZB:
CMP SCA_CLCY_IP,#46;
JNH SCA_GL_1;
;;; ;小电流接地选线数据周波组织
;;; ;U01
;;; LD TMPBX,#SCA_CYBASEA
;;; ADD TMPBX,#380H
;;; LCALL SCA_FSJB
;;; MUL SUM,SUM1,0EA2CH[0];
;;; MUL SSU,SSU1,0EA2CH[0];
;;; SCA_BCSUM
;;; SCA_BCSSU
;;; ST SUM1,0088H[SCA_FLYBASE]
;;; ST SSU1,008AH[SCA_FLYBASE]
;;; ST SUM1,0080H[SCA_SHBASE]
;;; ST SSU1,0082H[SCA_SHBASE];TX-U01
;;; SMACZ SUM1,SUM1
;;; SMAC SSU1,SSU1
;;; MVAC SUM,#15
;;; SHRL SUM,#01
;;; ST SUM1,0084H[SCA_JBBASE]
;;; ST SUM2,0086H[SCA_JBBASE]
;;;
;;; ;I01
;;; LD TMPBX,#SCA_CYBASEA
;;; ADD TMPBX,#400H
;;; LCALL SCA_FSJB
;;; MUL SUM,SUM1,0EA30H[0];
;;; MUL SSU,SSU1,0EA30H[0];
;;; SCA_BCSUM
;;; SCA_BCSSU
;;; ST SUM1,008CH[SCA_FLYBASE]
;;; ST SSU1,008EH[SCA_FLYBASE]
;;; ST SUM1,0084H[SCA_SHBASE]
;;; ST SSU1,0086H[SCA_SHBASE];TX--I01
;;; SMACZ SUM1,SUM1
;;; SMAC SSU1,SSU1
;;; MVAC SUM,#15
;;; SHRL SUM,#01
;;; ST SUM1,0088H[SCA_JBBASE]
;;; ST SUM2,008AH[SCA_JBBASE]
;U05
;LD TMPBX,#SCA_CYBASEA;
;ADD TMPBX,#380H
;LCALL SCA_FSFIVE;
;MUL SUM,SUM1,0EA2CH[0];
;MUL SSU,SSU1,0EA2CH[0];
;SCA_BCSUM
;SCA_BCSSU
;ST SUM1,0090H[SCA_FLYBASE]
;ST SSU1,0092H[SCA_FLYBASE]
;ST SUM1,74H[SCA_SHBASE]
;ST SSU1,76H[SCA_SHBASE];TX--U05
;SMACZ SUM1,SUM1
;SMAC SSU1,SSU1
;MVAC SUM,#15
;SHRL SUM,#01
;ST SUM1,008CH[SCA_JBBASE]
;ST SUM2,008EH[SCA_JBBASE];U05
;I05
;LD TMPBX,#SCA_CYBASEA
;ADD TMPBX,#400H
;LCALL SCA_FSFIVE
;MUL SUM,SUM1,0EA30H[0];
;MUL SSU,SSU1,0EA30H[0];
;SCA_BCSUM
;SCA_BCSSU
;ST SUM1,0094H[SCA_FLYBASE]
;ST SSU1,0096H[SCA_FLYBASE]
;ST SUM1,78H[SCA_SHBASE]
;ST SSU1,7AH[SCA_SHBASE];TX--I05
;SMACZ SUM1,SUM1
;SMAC SSU1,SSU1
;MVAC SUM,#15
;SHRL SUM,#01
;ST SUM1,0090H[SCA_JBBASE]
;ST SUM2,0092H[SCA_JBBASE]
;测量值单周波处理?
;UAB--IN0
LD TMPBX,#SCA_DATA_BURA;UAB
ADD TMPCX,SCA_BUR,#SCA_GLBASEA;
LCALL SCA_JSYXZS;1.125倍
LCALL SCA_SQRT
SHLL SUM,#04;
MULU SUM,SUM2,#9428
DIVU SUM,#10000;
CMP SUM2,#4999
JNH SCA_CLUAB
INC SUM1
SCA_CLUAB:
MULU SUM,SUM1,0EA10H[0];
DIVU SUM,#4096
CMP SUM2,#2047
JNH SCA_SSSA
INC SUM1
SCA_SSSA:
ST SUM1,[TMPCX]+
ST 00H,[TMPCX]+
LD TMPBX,#SCA_DATA_BURA;UAB
LCALL SCA_FSJB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -