海盐涵普控源动态库接口说明文档
由于动态库为Delphi所写,所以提供Delphi函数的接口,函数所用的参数类型都为整型和单精度类型,对其他程序语言的兼容性应该没有问题。所以下面对动态库接口的各个函数的说明都是用Delphi定义的。
1、 信号源升源函数
1) 三相升源函数,早期C型和D型台体升源函数:
OutPutData_gSub(pLngAjust:LongInt; pLngSourceType:LongInt;
pIntComPort:LongInt; pIntPhase:LongInt; pIntStatus:LongInt; pIntSequence:LongInt; pSngVoltage:Single; pSngCurrent:Single; pSngFrequency:Single; pIntIABC:LongInt; pIntIB:LongInt; pIntLC:LongInt;
pIntWave:LongInt; pIntWaveTimes:LongInt; pLngUWave:LongInt; pLngIWave:LongInt; Var pDelay_Time:DelayTime ):LongInt;Stdcall;export;
函数相应参数说明:
pLngAjust ------ 是否对输出作自动调整,1-调整,0-不调整。 pLngSourceType ------信号源类型
? 1、2为C形输出的信号源, ? 3为D输出的信号源, ? 4为DSP信号源(此处无效)
参数说明:由于C型为2000年以前的老台体,现在已经很少,所以
现在此函数主要用来控制D型台体,而Dsp型则用函数DspOutPut函数来实现(下文会有详细说明)。
pIntComPort ------ 台体通讯用的串口 发送时为LongInt类型 即’Com1’传送 1 ,以此类推。
pIntPhase ------ 相线
? 1表示3P3W(三相三线有功)
? 2表示3p3w(60Var)(三相三线60度无功) ? 3表示3p3w(90Var)(三相三线90度无功) ? 4表示3p3w(正弦Var)(三相三线正弦无功) ? 5表示3P4W(三相四线有功)
? 6表示3p4w(90Var)(三相四线90度无功) ? 7表示3p4w(正弦Var)(三相四线正弦无功)
pIntStatus ------- 测试状态
? 0 --- 正向有功 ? 1 --- 反向有功 ? 2 --- 正向无功 ? 3 --- 反向无功
pIntSequence ------ 相序
? 1 --- 正相序 ? 2 --- 逆相序
pSngVoltage,pSngCurrent,pSngFrequency 为电压,电流及其频率, 其发送格式都为单精度Single类型
其输入的数值为电表的额定电压、电流即频率数值。 pIntIABC ------ 电流相别
? 0 --- 表示ABC相三相电流输出 ? 1 --- 表示A相电流分相输出 ? 2 --- 表示B相电流分相输出 ? 3 --- 表示C相电流分相输出
pIntIB ------ 电流负载
此函数输出格式为额定电流的百分比。
例如:电表标定电流为5A,最大电流为20A 如果要升10A电流,则电流负载参数 pIntIB的输出值为200. pIntLC ------ 功率因数
由于功率因数需要传递的是1.0L、0.5C等,但是函数中的 此参数pIntLC传递的是LongInt类型,所以必须把需要传 递的功率因数进行一下转换。转换格式如下:
如果是 1.0L,换算公式为 (1.0*1000)*10+1=10001 0.5C,换算公司为 (0.5*1000)*10+2=5002 以上换算过程中,L表示1,C表示2. 这里给一个Vb的换算过程:
lStrLC = \此处为升源所需要的功率因数) pIntLC = Val(Mid(lStrLC, 1, Len(lStrLC) - 1)) * 1000 If Mid(lStrLC, Len(lStrLC), 1) = \ lIntLC = lIntLC * 10 + 1
ElseIf Mid(lStrLC, Len(lStrLC), 1) = \ lIntLC = lIntLC * 10 + 2 End If
pIntWave ------ 输出的波形类别
? 1、正弦波
? 2、次群波(奇次谐波) ? 3、谐波
? 4、可控硅波(偶次谐波)
一般的台体上,此参数都选择1(正弦波),其他波形都必 须是台体硬件支持才能实现,否则无效。 pIntWaveTimes ------ 谐波次数
pLngUWave,pLngIWave ------ 电压、电流谐波时的百分含量
此参数中,传递的是三相电压、电流的百分含量,所以三相的 含量必须组合在一起转换成LongInt类型进行赋值传递。 例如:电压、电流含量为1%,则传递值为 010101? 10101 电压、电流含量为5%,则传递值为 050505? 50505 电压、电流含量10%,则传递值为 101010?101010 以此类推。
pDelay_Time ------ 控源延时,此参数为一个结构体(定义在附注中)。 该结构体中含有两个LongInt类型参数:
? pLngSeatdyTime 为台体升源稳定延时 ? pLngAdjustTime 为台体信号源调整延时
2) 三相升源函数,Dsp型信号源升源函数
DspOutput(pLngAdjust:LongInt; pIntComPort:LongInt; pIntID:LongInt; PhaseWire:LongInt;
Frequency:Single; U1:Single; U2:Single; U3:Single; I1:Single; I2:Single; I3:Single; DUAB:Single;
DUAC:Single; DU1:Single; DU2:Single; DU3:Single; WaveType:LongInt; Var pDelay_Time:DelayTime):LongInt; Stdcall;export; 函数相应参数说明:
pLngAdjust和pIntComPort两个参数跟前面定义内容一样。 pIntID 为参数保留字,传递 1 即可。 phaseWire ------ 相别
参照OutPutDate_gSub函数中的pIntPhase参数
同时,单相Dsp也是用这个函数输出,只需要这里的相别 在pIntPhase的基础上增加两种,如下:
? 8 – 单相有功 ? 9 – 单相无功
Frequency、U1、U2、U3、I1、I2、I3为额定的频率、电压和电流值 传递类型为单精度Single类型。
DUAB、DUAC 为电压Uab和电压Uac直接的夹角。正相序时,夹
角为120和240,逆相序时为240和120(以上为平 衡输出时的夹角)
DU1、DU2、DU3 为A、B、C三相电压和电流之间的夹角。
以上各个夹角的数值范围为(0—359.99)之间。
为Single单精度类型
pDelay_Time ----- 参照OutPutDate_gSub中的相同参数说明。 WaveType ----- 输出的波形类别
参照OutPutData_gSub函数中的pIntWave参数。
3) 单相Dsp升源函数。
单相Dsp升源函数同三相的Dsp升源函数,唯一不同的是升源时,相别 phaseWire必须使用单相有功或者无功。具体传送值在上面三相Dsp升源函数中做了具体说明。
4) 单相LED显示配3801标准表升源函数
SingleRaiseVA(pIntComPort:LongInt; pSngVoltage:Single; pSngCurrent:Single; pSngFreq:LongInt; pIntPF:LongInt; pIntIB:LongInt;
pSngMaxVoltage:Single; pIntWaveType:LongInt; pIntWaveTimes:LongInt):LongInt;Stdcall;export;
函数参数说明:
pIntComPort的定义及传送值跟上面函数一致。
pSngVoltage、pSngCurrent、pSngFreq为额定电压、电流和频率 pIntPF为功率因数,需要换算,换算方法跟OutPutData_gSub函数 的pIntLC参数定义一样。
pIntIB为电流负载,使用跟OutPutData_gSub函数的pIntIB参数
一样.
pSngMaxVoltage --- 输出的最大电压,根据标准表3801的不同,分为 220*1.2=264和220*1.3=286两种。 pIntWaveType --- 波形类别,参照上面函数相同参数定义。
pIntWaveTimes --- 谐波次数,当参数pIntWaveType为1(正弦波)
时,改参数为0.
2、 信号源暂停函数
1) 三相暂停函数,早期C型和D型台体暂停函数
Source_Pause_gSub(pIntComPort:LongInt);stdcall;export;
函数说明:该函数使用是,只需要传递串口号即可,串口号的传递方式 参照上面相同函数的使用。
2) 三相Dsp信号源的暂停函数
由于Dsp信号源使用的Modbus规约编译,所以三相Dsp暂停函数跟Dsp 的升源函数相同,不同的时,暂停时,只需要把升源函数中的电流赋值为0即可。
3) 单相Dsp信号源的暂停函数
同2
4) 单相LED配3801标准表的暂停函数
SinglePause(pIntComPort :LongInt; pSngVoltage:Single):LongInt
;stdcall;export;
函数说明:串口参数的使用跟上面的相同,只是暂停时,需要输入参数 pSngVoltage为0即可。
3、 信号源降源函数
1) 三相暂停函数,早期C型和D型台体暂停函数 SourceClear_Fun(pIntComPort:LongInt):LongInt;stdcall;export;
函数说明:此函数为降源命令,只需要传递一个串口值就行
2) 三相Dsp信号源的降源函数
DSP信号源降源命令跟升源命令一样,只是在降源的时候, 三相电压电流赋值都为0就行。
3) 单相Dsp信号源的降源函数 同2)
4) 单相LED配3801标准表的暂停函数
SingleClear(pIntComPort :LongInt):LongInt ;stdcall;export;
函数说明:此函数为单相普通信号源降源命令,降源是只需要使用 次函数并传递一个串口值就行。
4、 台体8000板(误差计数器)控制函数(适用所有台体)
1) 函数ErrorOrder_gFun,8000板(误差计数器)通讯命令
ErrorOrder_gFun(pIntComPort:LongInt; pIntID:LongInt;
pIntAddress:LongInt; pIntTime:LongInt;
var pUdtAnswer:Answer):LongInt;Stdcall;export;
函数说明如下:
pIntComPort ----- 串口,使用跟上面函数说明一样。 pIntID ----- 命令控制字 2 :读误差。
3 :寻标记准备(启潜动功能)111 4 :寻标记开始(启潜动功能)222 5 :读取寻标记结果(启潜动功能) 6 :寻标记结束(启潜动功能)
7 :读取启、潜动开门脉冲(启潜动功能) 8 :读取启、潜动结果(启潜动功能)