海盐涵普控源动态库接口说明文档由于动态库为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;VarpDelay_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=100010.5C,换算公司为(0.5*1000)*10+2=5002以上换算过程中,L表示1,C表示2.这里给一个Vb的换算过程:lStrLC=0.5L(此处为升源所需要的功率因数)pIntLC=Val(Mid(lStrLC,1,Len(lStrLC)-1))*1000IfMid(lStrLC,Len(lStrLC),1)=LThenlIntLC=lIntLC*10+1ElseIfMid(lStrLC,Len(lStrLC),1)=CThenlIntLC=lIntLC*10+2EndIfpIntWave------输出的波形类别1、正弦波2、次群波(奇次谐波)3、谐波4、可控硅波(偶次谐波)一般的台体上,此参数都选择1(正弦波),其他波形都必须是台体硬件支持才能实现,否则无效。pIntWaveTimes------谐波次数pLngUWave,pLngIWave------电压、电流谐波时的百分含量此参数中,传递的是三相电压、电流的百分含量,所以三相的含量必须组合在一起转换成LongInt类型进行赋值传递。例如:电压、电流含量为1%,则传递值为01010110101电压、电流含量为5%,则传递值为05050550505电压、电流含量10%,则传递值为101010101010以此类推。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;VarpDelay_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信号源的暂停函数同24)单相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;varpUdtAnswer:Answer):LongInt;Stdcall;export;函数说明如下:pIntComPort-----串口,使用跟上面函数说明一样。pIntID-----命令控制字2:读误差。3:寻标记准备(启潜动功能)1114:寻标记开始(启潜动功能)2225:读取寻标记结果(启潜动功能)6:寻标记结束(启潜动功能)7:读取启、潜动开门脉冲(启潜动功能)8:读取启、潜动结果(启潜动功能)9:8000板状态查询(测试过程基本不使用)10:读取标准表脉冲11:8000板上485通道接通12:8000板上485通道断开13:打通第一通道。14:打通第二通道。15:打通第三通道16:打通第四通道17:打通第五通道18:打通第六通道19:打通第七通道20:打通第八通道21:光电脉冲输入22:表脉冲输入28:单相电流双回路,12回路切换29:单相电流双回路,34回路切换30:单相电流双回路,1234回路切换pIntAddress-----误差计算器序号(即但前表位号)pIntTime-----保留字,默认为0pUdtAnswer-----返回误差值(结构体),其中参数StrTimes为当前读取误差的次数,StrAnswer为当前读取误差。可以参照附录1注:由于按照国网增加了双回路,切换台体12,34回路的时候,参数pIntAddress为定值250.函数返回值为-1是表示成功。潜起动过程:寻标:先发3,再发4(两个一起的)――发5,读结果――全部表位寻标完成,发6,潜起动开始――发7,读每个表位潜起结果,――所有表结果,发8,结束命